From 035b90a68970d18bad71741880fcc9d083fc269d Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Fri, 17 May 2024 17:08:37 +0200
Subject: [PATCH 01/92] Feature/upgrade zone.js to version 0.14.5 (#3410)
* Upgrade zone.js to version 0.14.5
* Update changelog
---
CHANGELOG.md | 1 +
package.json | 2 +-
yarn.lock | 8 ++++----
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 93dfcfbad..636621405 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Refactored various pages to standalone components
- Upgraded `body-parser` from version `1.20.1` to `1.20.2`
+- Upgraded `zone.js` from version `0.14.4` to `0.14.5`
## 2.81.0 - 2024-05-12
diff --git a/package.json b/package.json
index 6a6e8f815..60dd48a20 100644
--- a/package.json
+++ b/package.json
@@ -134,7 +134,7 @@
"twitter-api-v2": "1.14.2",
"uuid": "9.0.1",
"yahoo-finance2": "2.11.2",
- "zone.js": "0.14.4"
+ "zone.js": "0.14.5"
},
"devDependencies": {
"@angular-devkit/build-angular": "17.3.5",
diff --git a/yarn.lock b/yarn.lock
index 5ad37c888..97b58c808 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -19716,10 +19716,10 @@ yocto-queue@^1.0.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
-zone.js@0.14.4:
- version "0.14.4"
- resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.14.4.tgz#e0168fe450e3e4313c8efdb4a0ae4b557ac0fdd8"
- integrity sha512-NtTUvIlNELez7Q1DzKVIFZBzNb646boQMgpATo9z3Ftuu/gWvzxCW7jdjcUDoRGxRikrhVHB/zLXh1hxeJawvw==
+zone.js@0.14.5:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.14.5.tgz#7f3591dc4cad1a030cda86b03d10450b719dd460"
+ integrity sha512-9XYWZzY6PhHOSdkYryNcMm7L8EK7a4q+GbTvxbIA2a9lMdRUpGuyaYvLDcg8D6bdn+JomSsbPcilVKg6SmUx6w==
dependencies:
tslib "^2.3.0"
From 812ff5cbdc4a1fc163d649ddcca3d9626ea6dcd8 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sat, 18 May 2024 16:40:25 +0200
Subject: [PATCH 02/92] Feature/refresh cryptocurrencies list 20240514 (#3411)
* Refresh cryptocurrencies list
* Update changelog
---
CHANGELOG.md | 1 +
.../cryptocurrencies/cryptocurrencies.json | 2448 ++++++++++++++++-
2 files changed, 2414 insertions(+), 35 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 636621405..305f7fdc9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
+- Refreshed the cryptocurrencies list
- Refactored various pages to standalone components
- Upgraded `body-parser` from version `1.20.1` to `1.20.2`
- Upgraded `zone.js` from version `0.14.4` to `0.14.5`
diff --git a/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json b/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json
index 4026bd896..972587899 100644
--- a/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json
+++ b/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json
@@ -1,16 +1,21 @@
{
+ "7": "Lucky7",
"42": "42 Coin",
"300": "300 token",
"365": "365Coin",
+ "369": "Nikola Tesla Token",
"404": "404Coin",
"433": "433 Token",
"611": "SixEleven",
+ "777": "Jackpot",
"808": "808",
"888": "Octocoin",
"1337": "EliteCoin",
"1717": "1717 Masonic Commemorative Token",
"2015": "2015 coin",
"2024": "2024",
+ "2049": "TOKEN 2049",
+ "2192": "LERNITAS",
"$MAID": "MaidCoin",
"$ROPE": "Rope",
"$TIME": "Madagascar Token",
@@ -21,7 +26,11 @@
"0X1": "0x1.tools: AI Multi-tool Plaform",
"0XBTC": "0xBitcoin",
"0XDEV": "DEVAI",
+ "0XG": "0xGpu.ai",
+ "0XGAS": "0xGasless",
+ "0XL": "0x Leverage",
"0XOS": "0xOS AI",
+ "0XSEARCH": "Search",
"0x0": "0x0.ai",
"0xDIARY": "The 0xDiary Token",
"1-UP": "1-UP",
@@ -32,9 +41,15 @@
"1CR": "1Credit",
"1EARTH": "EarthFund",
"1ECO": "1eco",
+ "1EX": "1ex Trading Board",
+ "1FLR": "Flare Token",
"1GOLD": "1irstGold",
"1INCH": "1inch",
"1IRST": "1irstcoin",
+ "1MCT": "MicroCreditToken",
+ "1MIL": "1MillionNFTs",
+ "1MT": "1Move",
+ "1NFT": "1NFT",
"1PECO": "1peco",
"1SG": "1SG",
"1SOL": "1Sol",
@@ -43,6 +58,7 @@
"1UP": "Uptrennd",
"1WO": "1World",
"2022M": "2022MOON",
+ "21X": "21X",
"2BACCO": "2BACCO Coin",
"2BASED": "2Based Finance",
"2CRZ": "2crazyNFT",
@@ -52,6 +68,7 @@
"2GT": "2GETHER",
"2KEY": "2key.network",
"2LC": "2local",
+ "2MOON": "The Moon Metaverse",
"2OMB": "2omb Finance",
"2SHARES": "2SHARE",
"2TF": "2TF",
@@ -59,9 +76,12 @@
"32BIT": "32Bitcoin",
"37C": "37Protocol",
"3AIR": "3air",
+ "3CEO": "FLOKI SHIBA PEPE CEO",
+ "3CRV": "LP 3pool Curve",
"3D3D": "3d3d",
"3DES": "3DES",
"3FT": "ThreeFold Token",
+ "3KM": "3 Kingdoms Multiverse",
"3P": "Web3Camp",
"3ULL": "3ULL Coin",
"3XD": "3DChain",
@@ -70,7 +90,11 @@
"420CHAN": "420chan",
"4ART": "4ART Coin",
"4CHAN": "4Chan",
+ "4CZ": "FourCZ",
"4JNET": "4JNET",
+ "4MW": "For Meta World",
+ "4RZ": "4REALZA COIN",
+ "4TOKEN": "Ignore Fud",
"50X": "50x.com",
"5IRE": "5ire",
"77G": "GraphenTech",
@@ -80,30 +104,40 @@
"8BT": "8 Circuit Studios",
"8PAY": "8Pay",
"8X8": "8X8 Protocol",
+ "9DOGS": "NINE DOGS",
"9GAG": "9GAG",
"A": "Alpha Token",
+ "A2A": "A2A",
+ "A4": "A4 Finance",
"A4M": "AlienForm",
"A51": "A51 Finance",
"A5T": "Alpha5",
"AA": "Alva",
"AAA": "Moon Rabbit",
"AAB": "AAX Token",
+ "AABL": "Abble",
"AAC": "Double-A Chain",
"AAG": "AAG Ventures",
+ "AAI": "AutoAir AI",
"AAPX": "AMPnet",
"AART": "ALL.ART",
+ "AAST": "AASToken",
"AAT": "Agricultural Trade Chain",
"AAVE": "Aave",
+ "AAZ": "ATLAZ",
"ABA": "EcoBall",
"ABBC": "ABBC Coin",
"ABC": "ABC Chain",
"ABCC": "ABCC Token",
+ "ABCD": "Crypto Inu",
"ABEL": "Abelian",
"ABEY": "Abey",
"ABIC": "Arabic",
"ABJ": "Abjcoin",
"ABL": "Airbloc",
+ "ABO": "Albino",
"ABOND": "ApeBond",
+ "ABR": "Allbridge",
"ABT": "ArcBlock",
"ABX": "Arbidex",
"ABY": "ArtByte",
@@ -131,7 +165,9 @@
"ACN": "AvonCoin",
"ACOIN": "ACoin",
"ACP": "Anarchists Prime",
+ "ACPT": "Crypto Accept",
"ACQ": "Acquire.Fi",
+ "ACRE": "Arable Protocol",
"ACRIA": "Acria.AI",
"ACS": "Access Protocol",
"ACT": "Achain",
@@ -145,6 +181,7 @@
"AD": "ADreward",
"ADA": "Cardano",
"ADAB": "Adab Solutions",
+ "ADACASH": "ADACash",
"ADAI": "Aave DAI",
"ADAO": "ADADao",
"ADAPAD": "ADAPad",
@@ -152,8 +189,10 @@
"ADAX": "ADAX",
"ADB": "Adbank",
"ADC": "AudioCoin",
+ "ADCO": "Advertise Coin",
"ADD": "ADD.xyz",
"ADDAMS": "ADDAMS AI",
+ "ADDY": "Adamant",
"ADEL": "Akropolis Delphi",
"ADF": "Art de Finance",
"ADH": "Adhive",
@@ -164,16 +203,21 @@
"ADN": "Aladdin",
"ADNT": "Aiden",
"ADO": "ADO Protocol",
+ "ADOGE": "Arbidoge",
+ "ADON": "Adonis",
"ADP": "Adappter Token",
+ "ADR": "Adroverse",
"ADRX": "Adrenaline Chain",
"ADS": "Adshares",
"ADT": "AdToken",
"ADUX": "Adult X Token",
+ "ADVT": "Advantis",
"ADX": "Ambire AdEx",
"ADXX": "AnonyDoxx",
"ADZ": "Adzcoin",
"AE": "Aeternity",
"AEC": "AcesCoin",
+ "AEG": "Aether Games",
"AEGGS": "aEGGS",
"AEGIS": "Aegis",
"AELIN": "Aelin",
@@ -192,7 +236,9 @@
"AETHC": "Ankr Reward-Bearing Staked ETH",
"AETHERV2": "AetherV2",
"AEUR": "Anchored Coins AEUR",
- "AEVO": "Always Evolving",
+ "AEVO": "Aevo",
+ "AEVUM": "Aevum",
+ "AFB": "A Fund Baby",
"AFC": "Arsenal Fan Token",
"AFCT": "Allforcrypto",
"AFEN": "AFEN Blockchain",
@@ -201,11 +247,15 @@
"AFIN": "Asian Fintech",
"AFIT": "Actifit",
"AFK": "AFKDAO",
+ "AFNTY": "Affinity",
"AFO": "AllForOneBusiness",
"AFP": "Animal Farm Pigs",
+ "AFRO": "Afrostar",
+ "AFROX": "AfroDex",
"AFTT": "Africa Trading Chain",
"AFX": "Afrix",
"AFYON": "Afyonspor Fan Token",
+ "AG": "AGAME",
"AG8": "ATROMG8",
"AGA": "AGA Token",
"AGATA": "Agatech",
@@ -213,13 +263,17 @@
"AGET": "Agetron",
"AGEUR": "agEUR",
"AGF": "Augmented Finance",
+ "AGG": "AGG",
"AGI": "Delysium",
+ "AGII": "AGII",
"AGIV1": "SingularityNET v1",
"AGIX": "SingularityNET",
"AGLA": "Angola",
"AGLD": "Adventure Gold",
"AGM": "Argoneum",
"AGN": "Agnus Ai",
+ "AGO": "AgoDefi",
+ "AGON": "Arabian Dragon",
"AGOV": "Answer Governance",
"AGPC": "AGPC",
"AGRO": "Bit Agro",
@@ -228,11 +282,14 @@
"AGT": "aGifttoken",
"AGV": "Astra Guild Ventures",
"AGVC": "AgaveCoin",
+ "AGVE": "Agave",
"AGX": "Agricoin",
"AHOO": "Ahoolee",
"AHT": "AhaToken",
"AI": "Sleepless",
+ "AIAI": "All In AI",
"AIAKITA": "AiAkita",
+ "AIAT": "AI Analysis Token",
"AIB": "AdvancedInternetBlock",
"AIBABYDOGE": "AIBabyDoge",
"AIBB": "AiBB",
@@ -240,20 +297,28 @@
"AIC": "AI Crypto",
"AICO": "AICON",
"AICODE": "AI CODE",
+ "AICORE": "AICORE",
"AID": "AidCoin",
"AIDI": "Aidi Inu",
"AIDOC": "AI Doctor",
"AIDOG": "AiDoge",
"AIDOGE": "ArbDoge AI",
+ "AIDOGEX": "AI DogeX",
+ "AIDOGEXLM": "AIDOGE Stellar",
"AIDT": "AIDUS TOKEN",
"AIDUS": "AIDUS Token",
"AIE": "A.I.Earn",
"AIEN": "AIENGLISH",
"AIFLOKI": "AI Floki",
"AIG": "A.I Genesis",
+ "AII": "Artificial Idiot",
+ "AIKEK": "AlphaKEK.AI",
"AILINK": "AiLink Token",
"AIM": "ModiHost",
+ "AIMARKET": "Acria.AI AIMARKET",
"AIMBOT": "AimBot AI",
+ "AIMEE": "AIMEE",
+ "AIMR": "MeromAI",
"AIMS": "HighCastle Token",
"AIMX": "Aimedis",
"AIN": "AI Network",
@@ -263,33 +328,48 @@
"AIONE": "AiONE",
"AIOT": "AIOT Token",
"AIOZ": "AIOZ Network",
+ "AIPAD": "AIPAD",
"AIPE": "AI Prediction Ecosystem",
"AIPEPE": "AI PEPE KING",
+ "AIPG": "AI Power Grid",
"AIPIN": "AI PIN",
"AIR": "Altair",
+ "AIRB": "BillionAir",
"AIRE": "Tokenaire",
+ "AIRI": "aiRight",
"AIRT": "Aircraft",
"AIRTOKEN": "AirToken",
"AIRX": "Aircoins",
+ "AIS": "AISwap",
"AISHIB": "ARBSHIB",
"AIT": "AIChain Token",
"AITECH": "Artificial Intelligence Utility Token",
"AITEK": "AI Technology",
"AITHEON": "Aitheon",
+ "AITIGER": "BNB Tiger AI",
+ "AITK": "AITK",
+ "AITN": "Artificial Intelligence Technology Network",
"AITRA": "Aitra",
"AITT": "AITrading",
"AIUS": "Arbius",
"AIWALLET": "AiWallet Token",
"AIX": "Aigang",
+ "AJNA": "Ajna Protocol",
+ "AK12": "AK12",
"AKA": "Akroma",
+ "AKI": "Aki Network",
"AKITA": "Akita Inu",
"AKITAX": "Akitavax",
"AKN": "Akoin",
"AKNC": "Aave KNC v1",
+ "AKREP": "Antalyaspor Token",
"AKRO": "Akropolis",
"AKT": "Akash Network",
"AKTIO": "AKTIO Coin",
"ALA": "ALA",
+ "ALAN": "Alan the Alien",
+ "ALB": "Alien Base",
+ "ALBEDO": "ALBEDO",
"ALBT": "AllianceBlock",
"ALC": "Arab League Coin",
"ALCAZAR": "Alcazar",
@@ -298,6 +378,7 @@
"ALCHE": "Alchemist",
"ALCX": "Alchemix",
"ALD": "AladdinDAO",
+ "ALDIN": "Alaaddin.ai",
"ALEPH": "Aleph.im",
"ALEX": "ALEX Lab",
"ALEXANDRITE": "Alexandrite",
@@ -323,6 +404,7 @@
"ALLEY": "NFT Alley",
"ALLIN": "All in",
"ALM": "Alium Finance",
+ "ALME": "Alita",
"ALN": "Aluna",
"ALOHA": "Aloha",
"ALOT": "Dexalot",
@@ -331,6 +413,7 @@
"ALPACA": "Alpaca Finance",
"ALPH": "Alephium",
"ALPHA": "Alpha Finance Lab",
+ "ALPHABET": "Alphabet",
"ALPHAC": "Alpha Coin",
"ALPHR": "Alphr",
"ALPINE": "Alpine F1 Team Fan Token",
@@ -341,11 +424,14 @@
"ALTCOIN": "ALTcoin",
"ALTCOM": "AltCommunity Coin",
"ALTD": "Altitude",
+ "ALTMAN": "SAM",
"ALTOCAR": "AltoCar",
"ALU": "Altura",
"ALUSD": "Alchemix USD",
"ALUX": "Alux Bank",
"ALV": "Allive",
+ "ALVA": "Alvara Protocol",
+ "ALWAYS": "Always Evolving",
"ALX": "ALAX",
"ALY": "Ally",
"AM": "AeroMe",
@@ -356,11 +442,14 @@
"AMAZINGTEAM": "AmazingTeamDAO",
"AMB": "AirDAO",
"AMBER": "AmberCoin",
+ "AMBO": "Sheertopia",
"AMBT": "AMBT Token",
"AMDC": "Allmedi Coin",
"AMDG": "AMDG",
"AME": "Amepay",
"AMERICANCOIN": "AmericanCoin",
+ "AMF": "AddMeFast",
+ "AMG": "DeHeroGame Amazing Token",
"AMIO": "Amino Network",
"AMIS": "AMIS",
"AMKT": "Alongside Crypto Market Index",
@@ -369,6 +458,7 @@
"AMMO": "Ammo Rewards",
"AMN": "Amon",
"AMO": "AMO Coin",
+ "AMOGUS": "Sussy Baka Impostor",
"AMON": "AmonD",
"AMOS": "Amos",
"AMP": "Amp",
@@ -390,14 +480,18 @@
"ANCT": "Anchor",
"AND": "AndromedaCoin",
"ANDC": "Android chain",
+ "ANDR": "Andromeda",
"ANDROTTWEILER": "Androttweiler Token",
"ANDX": "Arrano",
+ "ANDY": "ANDY",
"ANGEL": "Crypto Angel",
"ANGL": "Angel Token",
"ANGLE": "ANGLE",
"ANGO": "Aureus Nummus Gold",
+ "ANGRYSLERF": "ANGRYSLERF",
"ANI": "Animecoin",
"ANIM": "Animalia",
+ "ANIMA": "Realm Anima",
"ANJ": "Aragon Court",
"ANJI": "Anji",
"ANK": "AlphaLink",
@@ -406,6 +500,7 @@
"ANKR": "Ankr Network",
"ANKRBNB": "Ankr Staked BNB",
"ANKRETH": "Ankr Staked ETH",
+ "ANKRFTM": "Ankr Staked FTM",
"ANKRMATIC": "Ankr Staked MATIC",
"ANML": "Animal Concerts",
"ANN": "Annex Finance",
@@ -425,21 +520,27 @@
"ANV": "Aniverse",
"ANW": "Anchor Neural World",
"ANY": "Anyswap",
+ "AOC": "Alickshundra Occasional-Cortex",
"AOG": "AgeOfGods",
"AOK": "AOK",
"AOP": "Averopay",
"AOS": "AOS",
+ "AP": "AppleSwap AI",
"APAD": "Anypad",
"APC": "AlpaCoin",
+ "APCG": "ALLPAYCOIN",
+ "APD": "Aptopad",
"APE": "ApeCoin",
"APECOIN": "Asia Pacific Electronic Coin",
"APED": "Baddest Alpha Ape Bundle",
+ "APEWIFHAT": "ApeWifHat",
"APEX": "ApeX Protocol",
"APEXCOIN": "ApexCoin",
"APFC": "APF coin",
"APH": "Aphelion",
"API": "Application Programming Interface",
"API3": "API3",
+ "APING": "aping",
"APIS": "APIS",
"APIX": "APIX",
"APL": "Apollo Currency",
@@ -447,13 +548,17 @@
"APN": "Apron",
"APOD": "AirPod",
"APOLLO": "Apollo Crypto",
- "APP": "SappChat",
+ "APP": "Moon App",
+ "APPA": "Dappad",
"APPC": "AppCoins",
+ "APPLE": "AppleSwap",
"APRICOT": "Apricot Finance",
"APRIL": "April",
+ "APRS": "Aperios",
"APS": "APRES",
"APT": "Aptos",
"APTCOIN": "Aptcoin",
+ "APTOGE": "Aptoge",
"APU": "Apu",
"APW": "APWine",
"APX": "ApolloX",
@@ -464,9 +569,11 @@
"APYS": "APYSwap",
"APZ": "Alprockz",
"AQT": "Alpha Quark Token",
+ "AQTIS": "AQTIS",
"AQU": "aQuest",
"AQUA": "Aquarius",
"AQUAC": "Aquachain",
+ "AQUACITY": "Aquacity",
"AQUAGOAT": "Aqua Goat",
"AQUAP": "Planet Finance",
"AQUARI": "Aquari",
@@ -479,12 +586,16 @@
"ARBIT": "Arbit Coin",
"ARBS": "Arbswap",
"ARBT": "ARBITRAGE",
+ "ARBUZ": "ARBUZ",
"ARC": "ArcticCoin",
"ARCA": "Arca",
"ARCADE": "ARCADE",
"ARCANE": "Arcane Token",
+ "ARCAS": "Arcas",
"ARCH": "Archway",
+ "ARCHA": "ArchAngel Token",
"ARCHCOIN": "ArchCoin",
+ "ARCHIVE": "Chainback",
"ARCHL": "ArchLoot",
"ARCO": "AquariusCoin",
"ARCONA": "Arcona",
@@ -493,6 +604,7 @@
"ARDR": "Ardor",
"ARDX": "ArdCoin",
"ARE": "Aurei",
+ "AREA": "Areon Network",
"AREN": "Arenon",
"ARENA": "Arena",
"AREPA": "Arepacoin",
@@ -508,11 +620,14 @@
"ARIA20": "Arianee",
"ARIX": "Arix",
"ARK": "ARK",
+ "ARKEN": "Arken Finance",
"ARKER": "Arker",
"ARKI": "ArkiTech",
"ARKM": "Arkham",
"ARKN": "Ark Rivals",
+ "ARKY": "Arky",
"ARM": "Armory Coin",
+ "ARMA": "Aarma",
"ARMOR": "ARMOR",
"ARMR": "ARMR",
"ARMS": "2Acoin",
@@ -522,15 +637,19 @@
"ARNX": "Aeron",
"ARNXM": "Armor NXM",
"ARO": "Arionum",
+ "ARON": "Astronaut Aron",
+ "AROR": "Arora",
"ARPA": "ARPA Chain",
"ARPAC": "ArpaCoin",
"ARQ": "ArQmA",
"ARR": "ARROUND",
+ "ARRO": "Arro Social",
"ARRR": "Pirate Chain",
"ARSL": "Aquarius Loan",
"ART": "Maecenas",
"ARTC": "Artcoin",
"ARTDECO": "ARTDECO",
+ "ARTDRAW": "ArtDraw",
"ARTE": "Artemine",
"ARTEM": "Artem",
"ARTEON": "Arteon",
@@ -554,9 +673,11 @@
"AS": "AmaStar",
"ASA": "ASA Coin",
"ASAFE2": "Allsafe",
+ "ASAN": "ASAN VERSE",
"ASAP": "Asap Sniper Bot",
"ASC": "Ascend",
"ASD": "AscendEX Token",
+ "ASDEX": "AstraDEX",
"ASEED": "aUSD SEED (Acala)",
"ASG": "Asgard",
"ASGC": "ASG",
@@ -576,12 +697,14 @@
"ASS": "Australian Safe Shepherd",
"ASSA": "AssaPlay",
"ASSARA": "ASSARA",
+ "ASSET": "iAssets",
"ASST": "AssetStream",
"AST": "AirSwap",
"ASTA": "ASTA",
"ASTO": "Altered State Token",
"ASTON": "Aston",
"ASTR": "Astar",
+ "ASTRA": "Astra Protocol",
"ASTRADAO": "Astra DAO",
"ASTRAFER": "Astrafer",
"ASTRAL": "Astral",
@@ -589,7 +712,9 @@
"ASTROC": "Astroport Classic",
"ASTROLION": "AstroLion",
"ASTRONAUT": "Astronaut",
+ "ASTX": "Asterix Labs",
"ASUNA": "Asuna Hentai",
+ "ASVA": "Asva",
"ASW": "AdaSwap",
"ASY": "ASYAGRO",
"AT": "AWARE",
@@ -598,16 +723,22 @@
"ATC": "AutoBlock",
"ATCC": "ATC Coin",
"ATD": "A2DAO",
+ "ATEC": "AnonTech",
+ "ATECH": "AvaxTech",
+ "ATEM": "Atem Network",
"ATF": "Alion Tech Food",
+ "ATFI": "Atlantic Finance Token",
"ATFS": "ATFS Project",
"ATH": "All Time High Vodka",
"ATHE": "Atheios",
+ "ATID": "AstridDAO Token",
"ATK": "Attack Wagon",
"ATKN": "A-Token",
"ATL": "ATLANT",
"ATLAS": "Star Atlas",
"ATLX": "Atlantis Loans Polygon",
"ATM": "Atletico de Madrid Fan Token",
+ "ATMA": "ATMA",
"ATMC": "Autumncoin",
"ATMCHAIN": "ATMChain",
"ATMI": "Atonomi",
@@ -620,6 +751,7 @@
"ATOR": "ATOR Protocol",
"ATOZ": "Race Kingdom",
"ATP": "Atlas Protocol",
+ "ATPAY": "AtPay",
"ATR": "Ather",
"ATRI": "Atari Token",
"ATRNO": "AETERNUS",
@@ -635,6 +767,7 @@
"AUDC": "Aussie Digital",
"AUDF": "Forte AUD",
"AUDIO": "Audius",
+ "AUDT": "Auditchain",
"AUDX": "eToro Australian Dollar",
"AUK": "Aukcecoin",
"AUN": "Authoreon",
@@ -642,6 +775,7 @@
"AUPC": "Authpaper",
"AUR": "AUREO",
"AURA": "Aura Finance",
+ "AURABAL": "Aura BAL",
"AURO": "Aurora",
"AURORA": "Aurora",
"AURORAC": "Auroracoin",
@@ -654,13 +788,18 @@
"AUSDC": "Aave USDC v1",
"AUT": "Autoria",
"AUTHORSHIP": "Authorship",
+ "AUTISM": "AUTISM",
"AUTO": "Auto",
"AUTON": "Autonio",
+ "AUTUMN": "Autumn",
"AUX": "Auxilium",
"AV": "Avatar Coin",
"AVA": "Travala",
+ "AVAI": "Orca AVAI",
"AVAL": "Avaluse",
"AVALON": "Avalon",
+ "AVALOX": "AVALOX",
+ "AVAO": "AvaOne Finance",
"AVAT": "AVATA Network",
"AVATAR": "Avatar",
"AVATLY": "Avatly",
@@ -675,6 +814,8 @@
"AVINOC": "AVINOC",
"AVIVE": "Avive World",
"AVL": "Aston Villa Fan Token",
+ "AVM": "AVM (Atomicals)",
+ "AVME": "AVME",
"AVN": "AVNRich",
"AVO": "Avoteo",
"AVR": "Avrora Metaverse",
@@ -682,11 +823,14 @@
"AVT": "Aventus",
"AVTM": "Aventis Metaverse",
"AVXL": "Avaxlauncher",
+ "AVXT": "Avaxtars Token",
"AWAX": "AWAX",
"AWC": "Atomic Wallet Coin",
+ "AWM": "Another World",
"AWNEX": "AWNEX token",
"AWO": "AiWork",
"AWORK": "Aworker",
+ "AWP": "Ansem Wif Photographer",
"AWR": "Award",
"AWS": "AurusSILVER",
"AWT": "Airdrop World",
@@ -695,6 +839,7 @@
"AXC": "AXIA Coin",
"AXE": "Axe",
"AXEL": "AXEL",
+ "AXGT": "AxonDAO Governance Token",
"AXIAL": "AXiaL",
"AXIAV3": "Axia",
"AXIOM": "Axiom Coin",
@@ -702,8 +847,11 @@
"AXIST": "AXIS Token",
"AXL": "Axelar",
"AXLINU": "AXL INU",
+ "AXLUSDC": "Axelar Wrapped USDC",
+ "AXM": "Axiome",
"AXN": "Axion",
"AXNT": "Axentro",
+ "AXO": "Axo",
"AXPR": "aXpire",
"AXR": "AXRON",
"AXS": "Axie Infinity Shards",
@@ -716,11 +864,16 @@
"AZART": "Azart",
"AZBI": "AZBI CORE",
"AZERO": "Aleph Zero",
+ "AZIT": "Azit",
+ "AZR": "Azure",
"AZU": "Azultec",
"AZUKI": "Azuki",
"AZUM": "Azuma Coin",
+ "AZURE": "Azure Wallet",
"AZY": "Amazy",
"B": "BankCoin",
+ "B01": "b0rder1ess",
+ "B1P": "B ONE PAYMENT",
"B20": "B20",
"B21": "B21",
"B26": "B26 Finance",
@@ -728,48 +881,80 @@
"B2M": "Bit2Me",
"B2X": "SegWit2x",
"B3": "B3 Coin",
+ "B3X": "Bnext Token",
"B91": "B91",
+ "BA": "BAHA",
"BAAS": "BaaSid",
"BABI": "Babylons",
"BABL": "Babylon Finance",
"BABY": "BabySwap",
"BABYBINANCE": "BABYBINANCE",
+ "BABYBITC": "BabyBitcoin",
"BABYBNB": "BabyBNB",
+ "BABYBNBTIGER": "BabyBNBTiger",
"BABYBOB": "Baby Bob",
+ "BABYBOME": "Book of Baby Memes",
+ "BABYBOMEOW": "Baby of BOMEOW",
"BABYBONK": "Baby Bonk",
+ "BABYBTC": "BABYBTC",
+ "BABYCAT": "Baby Cat Coin",
"BABYCATS": "Baby Cat Coin",
"BABYCEO": "Baby Doge CEO",
"BABYCRAZYT": "BABY CRAZY TIGER",
"BABYCUBAN": "Baby Cuban",
"BABYDOGE": "BabyDoge",
+ "BABYDOGEINU": "BABY DOGE INU",
"BABYDRAGON": "Baby Dragon",
"BABYELON": "BabyElon",
"BABYFB": "Baby Floki Billionaire",
"BABYFLOKI": "BabyFloki",
+ "BABYFLOKIZILLA": "BabyFlokiZilla",
+ "BABYGOLDEN": "Baby Golden Coin",
"BABYGROK": "Baby Grok",
+ "BABYGUMMY": "BABY GUMMY",
"BABYHKTIGER": "BabyHkTiger",
"BABYHONK": "Baby Honk",
+ "BABYJERRY": "Baby Jerry",
"BABYJESUS": "BabyJesusCoin",
+ "BABYKITTY": "BabyKitty",
"BABYLONG": "Baby Long",
+ "BABYMAGA": "Baby Maga",
"BABYMEME": "Baby Memecoin",
+ "BABYMUSK": "Baby Musk",
"BABYMYRO": "Babymyro",
+ "BABYOKX": "BABYOKX",
"BABYPEPE": "Babypepe (BSC)",
+ "BABYPORK": "Baby Pepe Fork",
+ "BABYRATS": "Baby Rats",
+ "BABYRWA": "BabyRWA",
"BABYSAITAMA": "Baby Saitama",
"BABYSHARK": "Baby Shark",
"BABYSHIB": "Baby Shiba Inu",
+ "BABYSHIBAINU": "Baby Shiba Inu",
+ "BABYSHIV": "Baby Shiva",
+ "BABYSLERF": "BabySlerf",
+ "BABYSOL": "Baby Solana",
+ "BABYSORA": "Baby Sora",
"BABYSWEEP": "BabySweep",
"BABYTK": "Baby Tiger King",
+ "BABYTOMCAT": "Baby Tomcat",
+ "BABYTOSHI": "Baby Toshi",
+ "BABYTROLL": "Baby Troll",
"BABYTRUMP": "BABYTRUMP",
+ "BABYWIF": "babydogwifhat",
+ "BABYX": "Baby X",
"BAC": "Basis Cash",
"BACK": "DollarBack",
"BACOIN": "BACoin",
"BACON": "BaconDAO (BACON)",
"BAD": "Bad Idea AI",
+ "BADCAT": "Andy’s Alter Ego",
"BADGER": "Badger DAO",
"BAFC": "BabyApeFunClub",
"BAG": "BondAppetit",
"BAGS": "Basis Gold Share",
"BAI": "BearAI",
+ "BAJU": "Bajun Network",
"BAK": "BaconCoin",
"BAKAC": "Baka Casino",
"BAKE": "BakeryToken",
@@ -777,29 +962,41 @@
"BAKT": "Backed Protocol",
"BAL": "Balancer",
"BALA": "Shambala",
+ "BALD": "Bald",
+ "BALIN": "Balin Bank",
+ "BALLZ": "Wolf Wif",
"BALPHA": "bAlpha",
+ "BALTO": "Balto Token",
"BAMA": "BabyAMA",
"BAMBOO": "BambooDeFi",
"BAN": "Banano",
"BANANA": "ApeSwap",
"BANANAG": "Banana Gun",
+ "BANANAS": "Monkey Peepo",
"BANC": "Babes and Nerds",
"BANCA": "BANCA",
"BAND": "Band Protocol",
"BANDEX": "Banana Index",
+ "BANG": "BANG",
"BANK": "Float Protocol",
"BANKETH": "BankEth",
"BANNER": "BannerCoin",
"BANUS": "Banus.Finance",
+ "BANX": "Banx.gg",
"BAO": "Bao Finance",
"BAOE": "Business Age of Empires",
+ "BAOS": "BaoBaoSol",
"BAR": "FC Barcelona Fan Token",
"BARA": "Capybara",
+ "BARC": "The Blu Arctic Water Company",
"BARK": "Bored Ark",
+ "BARRON": "Time Traveler",
"BART": "BarterTrade",
"BAS": "Basis Share",
"BASE": "Base Protocol",
+ "BASEAI": "BaseAI",
"BASED": "Based Money",
+ "BASEDAI": "BasedAI",
"BASH": "LuckChain",
"BASHC": "BashCoin",
"BASHOS": "Bashoswap",
@@ -808,12 +1005,14 @@
"BASIS": "Basis",
"BASK": "BasketDAO",
"BAST": "Bast",
+ "BASTET": "Bastet Goddess",
"BAT": "Basic Attention Token",
"BATH": "Battle Hero",
"BATS": "Batcoin",
"BAX": "BABB",
"BAXS": "BoxAxis",
"BAY": "BitBay",
+ "BAYSE": "coynbayse",
"BAZED": "Bazed Games",
"BB": "Baby Bali",
"BB1": "Bitbond",
@@ -841,11 +1040,13 @@
"BBS": "BBSCoin",
"BBT": "BitBook",
"BBTC": "BlakeBitcoin",
+ "BBTF": "Block Buster Tech Inc",
"BC": "Bitcoin Confidential",
"BCA": "Bitcoin Atom",
"BCAC": "Business Credit Alliance Chain",
"BCAP": "Blockchain Capital",
"BCAT": "BitClave",
+ "BCAU": "BetaCarbon",
"BCB": "BCB Blockchain",
"BCCOIN": "BitConnect Coin",
"BCD": "Bitcoin Diamond",
@@ -860,6 +1061,9 @@
"BCHT": "Blockchain Terminal",
"BCI": "Bitcoin Interest",
"BCIO": "Blockchain.io",
+ "BCITY": "Bitcoin City Coin",
+ "BCL": "Bitcoin Legend",
+ "BCLAT": "BOMBOCLAT",
"BCMC": "Blockchain Monster Hunt",
"BCMC1": "BeforeCoinMarketCap",
"BCN": "ByteCoin",
@@ -868,29 +1072,37 @@
"BCNX": "BCNEX",
"BCO": "BridgeCoin",
"BCOIN": "Bombcrypto",
+ "BCOQ": "BLACK COQINU",
"BCP": "BitcashPay",
"BCPT": "BlockMason Credit Protocol",
"BCR": "BitCredit",
+ "BCRO": "Bonded Cronos",
"BCS": "Business Credit Substitute",
"BCT": "Toucan Protocol: Base Carbon Tonne",
"BCUBE": "B-cube.ai",
"BCUG": "Blockchain Cuties Universe Governance",
+ "BCUT": "bitsCrunch",
"BCV": "BitCapitalVendor",
"BCVB": "BCV Blue Chip",
"BCX": "BitcoinX",
"BCY": "BitCrystals",
"BCZERO": "Buggyra Coin Zero",
+ "BD": "BlastDEX",
+ "BD20": "BRC-20 DEX",
"BDAY": "Birthday Cake",
"BDB": "Big Data Block",
"BDC": "Based",
"BDCC": "BDCC COIN",
+ "BDCLBSC": "BorderCollieBSC",
"BDG": "BitDegree",
+ "BDID": "BDID",
"BDL": "Bitdeal",
"BDOG": "Bulldog Token",
"BDOT": "Binance Wrapped DOT",
"BDP": "Big Data Protocol",
"BDPI": "Interest Bearing Defi Pulse Index",
"BDR": "BlueDragon",
+ "BDROP": "BlockDrop",
"BDX": "Beldex",
"BDY": "Buddy DAO",
"BEA": "Beagle Inu",
@@ -915,6 +1127,8 @@
"BEETLE": "Beetle Coin",
"BEETOKEN": "Bee Token",
"BEETS": "Beethoven X",
+ "BEFE": "BEFE",
+ "BEFI": "BeFi Labs",
"BEFTM": "Beefy Escrowed Fantom",
"BEFX": "Belifex",
"BEFY": "Befy Protocol",
@@ -927,18 +1141,25 @@
"BEMD": "Betterment Digital",
"BEN": "Ben",
"BEND": "BendDao",
+ "BENDOG": "Ben the Dog",
+ "BENG": "Based Peng",
"BENJACOIN": "Benjacoin",
"BENJI": "BenjiRolls",
+ "BENK": "BENK",
"BENT": "Bent Finance",
+ "BENTO": "Bento",
"BENV1": "Ben v1",
"BENX": "BlueBenx",
"BENZI": "Ben Zi Token",
"BEP": "Blucon",
+ "BEPE": "Blast Pepe",
"BEPR": "Blockchain Euro Project",
"BEPRO": "BEPRO Network",
"BERN": "BERNcash",
"BERRY": "Berry",
"BES": "battle esports coin",
+ "BESA": "Besa Gaming",
+ "BESHARE": "Beshare Token",
"BEST": "Bitpanda Ecosystem Token",
"BESTC": "BestChain",
"BETA": "Beta Finance",
@@ -949,6 +1170,7 @@
"BETHER": "Bethereum",
"BETR": "BetterBetting",
"BETROCK": "Betrock",
+ "BETS": "BetSwirl",
"BETT": "Bettium",
"BETU": "Betu",
"BEX": "BEX token",
@@ -961,9 +1183,11 @@
"BFCH": "Big Fun Chain",
"BFDT": "Befund",
"BFEX": "BFEX",
+ "BFG": "BFG Token",
"BFHT": "BeFaster Holder Token",
"BFI": "BitDefi",
"BFIC": "Bficoin",
+ "BFICGOLD": "BFICGOLD",
"BFK WARZONE": "BFK Warzone",
"BFLOKI": "BurnFloki",
"BFLY": "Butterfly Protocol",
@@ -971,6 +1195,7 @@
"BFT.BITCI": "Brazil Fan Token",
"BFTC": "BITS FACTOR",
"BFX": "BitFinex Tokens",
+ "BG": "BunnyPark Game",
"BGB": "Bitget token",
"BGBP": "Binance GBP Stable Coin",
"BGC": "Bee Token",
@@ -979,9 +1204,11 @@
"BGONE": "BigONE Token",
"BGPT": "BlockGPT",
"BGS": "Battle of Guardians Share",
+ "BGVT": "Bit Game Verse Token",
"BHAO": "Bithao",
"BHAT": "BH Network",
"BHAX": "Bithashex",
+ "BHBD": "bHBD",
"BHC": "BillionHappiness",
"BHEROES": "BombHeroes coin",
"BHIG": "BuckHathCoin",
@@ -991,17 +1218,22 @@
"BHP": "Blockchain of Hash Power",
"BHPC": "BHPCash",
"BIAO": "Biaocoin",
+ "BIB": "BIB Token",
"BIBI": "BIBI",
"BIBL": "Biblecoin",
+ "BIBO": "Bible of Memes",
"BIC": "Bikercoins",
"BICO": "Biconomy",
+ "BICS": "Biceps",
"BID": "TopBidder",
"BIDAO": "Bidao",
"BIDCOM": "Bidcommerce",
"BIDEN": "Dark Brandon",
+ "BIDEN2024": "BIDEN 2024",
"BIDI": "Bidipass",
"BIDP": "BID Protocol",
"BIDR": "Binance IDR Stable Coin",
+ "BIDZ": "BIDZ Coin",
"BIFI": "Beefy.Finance",
"BIFIF": "BiFi",
"BIG": "Big Eyes",
@@ -1012,28 +1244,36 @@
"BIGUP": "BigUp",
"BIH": "BitHostCoin",
"BIHU": "Key",
+ "BIIS": "biis (Ordinals)",
"BIKI": "BIKI",
"BILL": "TillBilly",
"BIM": "BitminerCoin",
"BIND": "Compendia",
"BINEM": "Binemon",
"BINGO": "Tomorrowland",
+ "BINO": "Binopoly",
"BINS": "Bitsense",
"BINTEX": "Bintex Futures",
+ "BINU": "Blast Inu",
"BIO": "BITONE",
"BIOB": "BioBar",
"BIOC": "BioCrypt",
"BIOCOIN": "Biocoin",
"BIOFI": "Biometric Financial",
+ "BIOP": "Biop",
"BIOS": "BiosCrypto",
"BIOT": "Bio Passport",
"BIP": "Minter",
"BIPC": "BipCoin",
"BIPX": "Bispex",
+ "BIR": "Birake",
"BIRB": "Birb",
"BIRD": "Bird.Money",
"BIRDCHAIN": "Birdchain",
+ "BIRDDOG": "Bird Dog",
"BIS": "Bismuth",
+ "BISKIT": "Biskit Protocol",
+ "BISO": "BISOSwap",
"BIST": "Bistroo",
"BIT": "BitDAO",
"BIT16": "16BitCoin",
@@ -1041,8 +1281,10 @@
"BITASEAN": "BitAsean",
"BITB": "BeanCash",
"BITBOOST": "BitBoost",
+ "BITBULL": "Bitbull",
"BITC": "BitCash",
"BITCAR": "BitCar",
+ "BITCAT": "Bitcat",
"BITCCA": "Bitcci Cash",
"BITCI": "Bitcicoin",
"BITCM": "Bitcomo",
@@ -1062,6 +1304,8 @@
"BITNEW": "BitNewChain",
"BITO": "BitoPro Exchange Token",
"BITOK": "BitOKX",
+ "BITORB": "BitOrbit",
+ "BITRA": "Bitratoken",
"BITREWARDS": "BitRewards",
"BITROLIUM": "Bitrolium",
"BITRUE": "Bitrue Coin",
@@ -1080,13 +1324,17 @@
"BIVE": "BIZVERSE",
"BIX": "BiboxCoin",
"BIXB": "BIXBCOIN",
+ "BIXI": "Bixi",
+ "BIZA": "BizAuto",
"BIZZ": "BIZZCOIN",
+ "BJ": "Blocjerk",
"BJK": "Beşiktaş",
"BKBT": "BeeKan",
"BKC": "Balkancoin",
"BKING": "King Arthur",
"BKK": "BKEX Token",
"BKN": "Brickken",
+ "BKPT": "Biokript",
"BKR": "Balkari Token",
"BKRW": "Binance KRW",
"BKS": "Barkis Network",
@@ -1094,20 +1342,30 @@
"BKX": "BANKEX",
"BLA": "BlaBlaGame",
"BLACK": "BLACKHOLE PROTOCOL",
+ "BLACKDRAGON": "Black Dragon",
+ "BLACKROCK": "BlackRock",
"BLACKSWAN": "BlackSwan AI",
"BLADE": "BladeWarrior",
"BLANK": "Blank Token",
"BLAS": "BlakeStar",
"BLAST": "BLAST",
"BLAUNCH": "B-LAUNCH",
+ "BLAZE": "Blaze",
+ "BLAZEX": "BlazeX",
"BLAZR": "BlazerCoin",
+ "BLBY": "Badluckbaby",
"BLC": "BlakeCoin",
"BLCT": "Bloomzed Loyalty Club Ticket",
"BLD": "Agoric",
+ "BLENDR": "Blendr Network",
+ "BLERF": "BLERF",
"BLES": "Blind Boxes",
+ "BLF": "Baby Luffy",
"BLHC": "BlackholeCoin",
+ "BLI": "BALI TOKEN",
"BLID": "Bolide",
"BLIN": "Blin Metaverse",
+ "BLING": "PLEB DREKE",
"BLINK": "BlockMason Link",
"BLINU": "Baby Lambo Inu",
"BLITZ": "BlitzCoin",
@@ -1118,6 +1376,7 @@
"BLKS": "Blockshipping",
"BLN": "Bulleon",
"BLNM": "Bolenum",
+ "BLOB": "Blob",
"BLOC": "Blockcloud",
"BLOCK": "Blockasset",
"BLOCKIFY": "Blockify.Games",
@@ -1128,6 +1387,7 @@
"BLOCM": "BLOC.MONEY",
"BLOCX": "BLOCX.",
"BLOK": "Bloktopia",
+ "BLOO": "bloo foster coin",
"BLOODY": "Bloody Token",
"BLOOMT": "Bloom Token",
"BLOVELY": "Baby Lovely Inu",
@@ -1160,9 +1420,11 @@
"BLZD": "Blizzard.money",
"BLZE": "BLAZE TOKEN",
"BM": "BitMoon",
+ "BMAGA": "Baby Maga",
"BMARS": "Binamars",
"BMBO": "Bamboo Coin",
"BMC": "Blackmoon Crypto",
+ "BMDA": "Bermuda",
"BME": "BitcoMine",
"BMEX": "BitMEX",
"BMF": "MetaFame",
@@ -1170,6 +1432,7 @@
"BMH": "BlockMesh",
"BMI": "Bridge Mutual",
"BMIC": "Bitmic",
+ "BMICKEY": "Baby Mickey",
"BMK": "Benchmark",
"BMON": "Binamon",
"BMP": "Brother Music Platform",
@@ -1181,11 +1444,22 @@
"BNA": "BananaTok",
"BNANA": "Chimpion",
"BNB": "Binance Coin",
+ "BNBBONK": "BNB BONK",
+ "BNBBUNNY": "BNB BUNNY",
+ "BNBCAT": "BNBcat",
"BNBCH": "BNB Cash",
"BNBDOG": "BNB DOG INU",
+ "BNBDOGE": "BNBdoge",
+ "BNBDRGN": "BNBDragon",
+ "BNBFROG": "BNBFROG",
"BNBH": "BnbHeroes Token",
"BNBLION": "BNB LION",
"BNBP": "BNBPot",
+ "BNBSNAKE": "BNB SNAKE",
+ "BNBSONGOKU": "BNBsongoku",
+ "BNBTC": "BNbitcoin",
+ "BNBVEGETA": "BNB VEGETA",
+ "BNBWHALES": "BNB Whales",
"BNBX": "Stader BNBx",
"BNC": "Bifrost Native Coin",
"BND": "Bened",
@@ -1198,6 +1472,7 @@
"BNR": "BiNeuro",
"BNRTX": "BnrtxCoin",
"BNS": "BNS token",
+ "BNSAI": "bonsAI Network",
"BNSD": "BNSD Finance",
"BNSOLD": "BNS token ",
"BNSX": "Bitcoin Name Service System",
@@ -1206,61 +1481,101 @@
"BNTN": "Blocnation",
"BNTY": "Bounty0x",
"BNU": "ByteNext",
+ "BNUSD": "Balanced Dollars",
"BNX": "BinaryX",
"BOA": "BOSAGORA",
+ "BOAI": "BOLICAI",
"BOARD": "SurfBoard Finance",
"BOAT": "Doubloon",
"BOBA": "Boba Network",
"BOBAI": "Bob AI",
+ "BOBAOPPA": "Bobaoppa",
"BOBC": "Bobcoin",
+ "BOBE": "BOOK OF BILLIONAIRES",
"BOBO": "BOBO",
"BOBS": "Bob's Repair",
"BOBT": "BOB Token",
"BOC": "BOCOIN",
+ "BOCA": "BookOfPussyCats",
+ "BOCAT": "BOCAT",
+ "BODA": "Based Yoda",
+ "BODAV2": "BODA Token",
+ "BODE": "Book of Derp",
+ "BODEN": "Jeo Boden",
"BODHI": "Bodhi Network",
+ "BODO": "BOOK OF DOGS",
+ "BODOG": "Book of Doge",
"BODYP": "Body Profile",
"BOE": "Bodhi",
"BOG": "Bogged Finance",
"BOGCOIN": "Bogcoin",
+ "BOGE": "Boge",
"BOGEY": "Bogey",
+ "BOJAK": "Based Wojak",
"BOJI": "BOJI Token",
"BOK": "Blockium",
+ "BOKI": "BOOK OF KILLER",
"BOKU": "Boryoku Dragonz",
+ "BOLBOL": "BOLBOL",
"BOLD": "Bold",
"BOLI": "BolivarCoin",
"BOLT": "Bolt",
"BOLTT": "BolttCoin",
+ "BOMA": "Book of Maga",
"BOMB": "BOMB",
"BOMBC": "BombCoin",
"BOMBM": "Bomb Money",
+ "BOME": "BOOK OF MEME",
+ "BOME2": "Book of Meme 2.0",
+ "BOMEDOGE": "BOOK OF DOGE MEMES",
+ "BOMEOW": "Book of Meow",
+ "BOMES": "BOOK OF MEMES",
+ "BOMK": "BOMK",
"BON": "Bonpay",
"BONA": "Bonafi",
"BOND": "BarnBridge",
"BONDLY": "Bondly",
"BONE": "Bone ShibaSwap",
"BONES": "BonesCoin",
+ "BONFIRE": "Bonfire",
"BONIX": "Blockonix",
"BONK": "Bonk",
+ "BONKCON": "Bonkcon",
+ "BONKFA": "Bonk of America",
+ "BONKFORK": "BonkFork",
+ "BONKGROK": "Bonk Grok",
"BONKH": "BonkHoneyHNTMobileSOL",
"BONKIN": "Bonkinu",
+ "BONKKONG": "BONK KONG",
"BONO": "Bonorum Coin",
"BONTE": "Bontecoin",
+ "BONUS": "BonusBlock",
"BONUSCAKE": "Bonus Cake",
"BOO": "Spookyswap",
"BOOB": "BooBank",
- "BOOM": "Boom Token",
+ "BOOE": "Book of Ethereum",
+ "BOOFI": "Boo Finance",
+ "BOOK": "Solbook",
+ "BOOM": "BOOM DAO",
+ "BOOMCOIN": "Boom Token",
+ "BOOMER": "Boomer",
"BOONS": "BOONSCoin",
+ "BOOP": "Boop",
"BOOST": "Boost",
"BOOSTO": "BOOSTO",
+ "BOOT": "Bostrom",
+ "BOP": "Boring Protocol",
"BOR": "BoringDAO",
"BORA": "BORA",
"BORED": "Bored Museum",
"BORG": "SwissBorg",
"BORING": "BoringDAO",
"BORK": "Bork",
+ "BORKIE": "Borkie",
"BORUTO": "Boruto Inu",
"BOS": "BOScoin",
"BOSE": "Bitbose",
+ "BOSOL": "Book of Solana",
"BOSON": "Boson Protocol",
"BOSONC": "BosonCoin",
"BOSS": "BitBoss",
@@ -1276,21 +1591,27 @@
"BOUNCE": "Bounce Token",
"BOUTS": "BoutsPro",
"BOW": "Archer Swap",
+ "BOWE": "Book of Whales",
"BOX": "ContentBox",
"BOXETH": "Cat-in-a-Box Ether",
"BOXT": "BOX Token",
"BOXX": "Blockparty",
"BOXY": "BoxyCoin",
+ "BOYS": "CRASHBOYS",
+ "BOYSCLUB": "Matt Furie's Boys Club",
"BOZO": "BOZO",
+ "BOZY": "Book of Crazy",
"BP": "BunnyPark",
"BPAD": "BlokPad",
"BPAY": "BNBPay",
"BPD": "Beautiful Princess Disorder",
"BPEPEF": "Baby Pepe Floki",
"BPET": "BPET",
+ "BPINKY": "BPINKY",
"BPL": "BlockPool",
"BPLC": "BlackPearl Token",
"BPN": "beepnow",
+ "BPOKO": "BabyPoko",
"BPRIVA": "Privapp Network",
"BPRO": "BitCloud Pro",
"BPS": "BitcoinPoS",
@@ -1306,9 +1627,12 @@
"BR34P": "BR34P",
"BRACE": "Bitci Racing Token",
"BRAIN": "BrainCoin",
+ "BRAINERS": "Brainers",
"BRANA": "Branaverse",
"BRAND": "BrandProtect",
"BRAT": "BROTHER",
+ "BRATT": "Son of Brett",
+ "BRAWL": "BitBrawl",
"BRAZ": "Brazio",
"BRC": "Baer Chain",
"BRCP": "BRCP Token",
@@ -1319,22 +1643,28 @@
"BREE": "CBDAO",
"BREED": "BreederDAO",
"BREPE": "BREPE",
+ "BRETT": "Brett",
+ "BRETTA": "Bretta",
"BREW": "CafeSwap Token",
"BREWLABS": "Brewlabs",
"BRG": "Bridge Oracle",
+ "BRGE": "OrdBridge",
"BRGX": "Bridge$",
"BRI": "Baroin",
"BRIA": "Briacoin",
"BRIC": "BrightCoin",
"BRICK": "Brickchain FInance",
+ "BRICKS": "MyBricks",
"BRIDGE": "Bridge Bot",
"BRIGHT": "Bright Token",
"BRIGHTU": "Bright Union",
"BRIK": "BrikBit",
"BRISE": "Bitgert",
"BRIT": "BritCoin",
+ "BRITT": "Britt",
"BRITTO": "Britto",
"BRIUM": "Bearium",
+ "BRIUN": "Briun Armstrung",
"BRIX": "OpenBrix",
"BRK": "BreakoutCoin",
"BRKL": "Brokoli Token",
@@ -1344,11 +1674,15 @@
"BRNX": "Bronix",
"BRO": "Bitradio",
"BROCK": "Bitrock",
+ "BROGG": "Brett's Dog",
"BRONZ": "BitBronze",
"BRRR": "Burrow",
+ "BRS": "Broovs Projects",
"BRT": "Bikerush",
"BRTR": "Barter",
"BRTX": "Bertinity",
+ "BRUNE": "BitRunes",
+ "BRUSH": "PaintSwap",
"BRUV": "Bruv",
"BRWL": "Blockchain Brawlers",
"BRX": "Breakout Stake",
@@ -1361,35 +1695,46 @@
"BSAFE": "BlockSafe",
"BSAFU": "BlockSAFU",
"BSATOSHI": "BabySatoshi",
+ "BSB": "Based Street Bets",
"BSC": "BowsCoin",
+ "BSCAKE": "Bunscake",
"BSCBURN": "BSCBURN",
"BSCGIRL": "Binance Smart Chain Girl",
"BSCH": "BitSchool",
"BSCM": "BSC MemePad",
"BSCPAD": "BSCPAD",
+ "BSCPAY": "BSC PAYMENTS",
"BSCS": "BSC Station",
"BSCV": "Bscview",
"BSE": "BitSerial",
"BSEND": "BitSend",
+ "BSFM": "BABY SAFEMOON",
"BSG": "Baby Squid Game",
"BSGG": "Betswap.gg",
"BSGS": "Basis Gold Share",
+ "BSHARE": "Bomb Money",
+ "BSHIB": "Based Shiba Inu",
"BSI": "Bali Social Integrated",
"BSKT": "BasketCoin",
"BSL": "BankSocial",
+ "BSOL": "BlazeStake Staked SOL",
"BSOV": "BitcoinSoV",
"BSP": "BallSwap",
"BSPM": "Bitcoin Supreme",
"BSPT": "Blocksport",
"BSR": "BitSoar Coin",
"BSSB": "BitStable Finance",
- "BST": "Beshare Token",
+ "BST": "Blocksquare Token",
"BSTAR": "Blackstar",
+ "BSTC": "BST Chain",
"BSTK": "BattleStake",
"BSTN": "BitStation",
+ "BSTS": "Magic Beasties",
"BSTY": "GlobalBoost",
"BSV": "Bitcoin SV",
"BSW": "Biswap",
+ "BSWAP": "BaseSwap",
+ "BSWT": "BaySwap",
"BSX": "Basilisk",
"BSY": "Bestay",
"BSYS": "BSYS",
@@ -1398,6 +1743,8 @@
"BT2": "Bitcoin SegWit2X",
"BTA": "Bata",
"BTAD": "Bitcoin Adult",
+ "BTAF": "BTAF token",
+ "BTAMA": "Basetama",
"BTB": "BitBar",
"BTBL": "Bitball",
"BTBS": "BitBase Token",
@@ -1405,6 +1752,7 @@
"BTC2": "Bitcoin 2",
"BTCA": "BITCOIN ADDITIONAL",
"BTCAS": "BitcoinAsia",
+ "BTCAT": "Bitcoin Cat",
"BTCB": "Bitcoin BEP2",
"BTCBR": "Bitcoin BR",
"BTCC": "Bitcoin Core",
@@ -1451,13 +1799,17 @@
"BTMI": "BitMiles",
"BTMK": "BitMark",
"BTMXBULL": "3X Long BitMax Token Token",
+ "BTNT": "BitNautic Token",
+ "BTNTV2": "BitNautic Token",
"BTNYX": "BitOnyx Token",
"BTO": "Bottos",
"BTOP": "Botopia.Finance",
+ "BTP": "Bitpaid",
"BTPL": "Bitcoin Planet",
"BTQ": "BitQuark",
"BTR": "BTRIPS",
"BTRFLY": "Redacted Cartel",
+ "BTRL": "BitcoinRegular",
"BTRM": "Betrium Token",
"BTRN": "Biotron",
"BTRS": "Bitball Treasure",
@@ -1470,29 +1822,40 @@
"BTTF": "Coin to the Future",
"BTTOLD": "BitTorrent",
"BTTR": "BitTiger",
+ "BTTY": "Bitcointry Token",
"BTU": "BTU Protocol",
"BTV": "Bitvote",
"BTW": "BitWhite",
"BTX": "BitCore",
"BTXC": "Bettex coin",
"BTY": "Bityuan",
+ "BTYC": "BigTycoon",
"BTZ": "BitzCoin",
"BTZC": "BeatzCoin",
"BTZN": "Bitzon",
"BU": "BUMO",
+ "BUB": "BUBCAT",
"BUBO": "Budbo",
"BUBU": "BUBU",
"BUC": "Beau Cat",
"BUCK": "Coinbuck",
"BUCKS": "SwagBucks",
"BUD": "Buddy",
+ "BUDDHA": "Buddha",
+ "BUDG": "Bulldogswap",
+ "BUF": "Buftoad",
"BUFF": "Buffalo Swap",
"BUFFDOGE": "Buff Doge",
+ "BUFFET": "Worried",
"BUGATTI": "BUGATTI",
"BUGG": "Bugg Inu",
+ "BUGS": "Bugs Bunny",
+ "BUIDL": "Starter.xyz",
+ "BUILD": "BuildAI",
"BUILDIN": "Buildin Token",
"BUILDTEAM": "BuildTeam",
"BUK": "CryptoBuk",
+ "BUL": "bul",
"BULL": "Bullieverse",
"BULLC": "BuySell",
"BULLINU": "Bull inu",
@@ -1501,9 +1864,13 @@
"BULLPEPE": "Bullpepe",
"BULLS": "Bull Coin",
"BULLSH": "Bullshit Inu",
+ "BULLYINGCAT": "Bullying Cat",
+ "BULT": "Bullit",
"BUMN": "BUMooN",
"BUMP": "Bumper",
"BUN": "BunnyCoin",
+ "BUND": "Bund V2.0",
+ "BUNDL": "Bundl Tools",
"BUNI": "Bunicorn",
"BUNNY": "Pancake Bunny",
"BUNNYINU": "Bunny Inu",
@@ -1512,7 +1879,11 @@
"BURN": "Bitburn",
"BURNDOGE": "BurnDoge",
"BURNIFYAI": "BurnifyAI",
+ "BURNNY": "Burnny Inu",
+ "BURNS": "Burnsdefi",
+ "BURNZ": "BURNZ",
"BURP": "CoinBurp",
+ "BURRRD": "BURRRD",
"BUSD": "Binance USD",
"BUSDC": "BUSD",
"BUSY": "Busy DAO",
@@ -1524,11 +1895,15 @@
"BUZZ": "BuzzCoin",
"BV3A": "Buccaneer V3 Arbitrum",
"BVC": "BeaverCoin",
+ "BVM": "BVM",
"BVND": "Binance VND",
"BVO": "BRAVO Pay",
+ "BVT": "BovineVerse Token",
"BWB": "Bit World Token",
"BWF": "Beowulf",
+ "BWJ": "Baby WOJ",
"BWK": "Bulwark",
+ "BWLD": "Bowled.io",
"BWN": "BitWings",
"BWO": "Battle World",
"BWS": "BitcoinWSpectrum",
@@ -1542,18 +1917,23 @@
"BXF": "BlackFort Token",
"BXH": "BXH",
"BXK": "Bitbook Gambling",
+ "BXMI": "Bxmi Token",
"BXR": "Blockster",
"BXT": "BitTokens",
"BXTB": "BXTB Foundation",
"BXX": "Baanx",
"BXY": "Beaxy",
+ "BYAT": "Byat",
"BYC": "ByteCent",
+ "BYG": "Black Eye Galaxy",
+ "BYTE": "Byte",
"BYTES": "Neo Tokyo",
"BYTHER": "Bytether ",
"BYTS": "Bytus",
"BYTZ": "BYTZ",
"BZ": "Bit-Z",
"BZENIQ": "Wrapped Zeniq (BNB)",
+ "BZET": "Bzetcoin",
"BZKY": "Bizkey",
"BZL": "BZLCoin",
"BZNT": "Bezant",
@@ -1566,30 +1946,38 @@
"C2": "Coin.2",
"C20": "Crypto20",
"C25": "C25 Coin",
+ "C2H6": "Ethane",
"C2X": "C2X",
"C3": "Charli3",
"C98": "Coin98",
"CA": "Coupon Assets",
"CAAVE": "cAAVE",
"CAB": "CabbageUnit",
+ "CABO": "CatBonk",
"CABS": "CryptoABS",
"CACH": "Cachecoin",
"CACHE": "Cache",
"CACHEGOLD": "CACHE Gold",
+ "CACTUS": "CACTUS",
+ "CADC": "CAD Coin",
"CADINU": "Canadian Inuit Dog",
"CADN": "Content and AD Network",
"CADX": "eToro Canadian Dollar",
+ "CAESAR": "Caesar's Arena",
"CAF": "Childrens Aid Foundation",
"CAG": "Change",
"CAGA": "Crypto Asset Governance Alliance",
"CAH": "Moon Tropica",
"CAI": "Cai Token",
"CAID": "ClearAid",
+ "CAIR": "Crypto-AI-Robo.com",
"CAIX": "CAIx",
"CAIZ": "Caizcoin",
"CAKE": "PancakeSwap",
"CAKEBOT": "CakeBot",
"CAKEMOON": "CakeMoon",
+ "CAKESWAP": "CakeSwap",
+ "CAKEW": "CakeWSwap",
"CAL": "Calcium",
"CALC": "CaliphCoin",
"CALI": "CaliCoin",
@@ -1601,12 +1989,17 @@
"CAMLY": "Camly Coin",
"CAMP": "Camp",
"CAN": "Channels",
+ "CANCER": "Cancer",
"CAND": "Canary Dollar",
+ "CANDLE": "Candle Cat",
"CANDY": "UnicornGo Candy",
+ "CANDYLAD": "Candylad",
"CANN": "CannabisCoin",
"CANTI": "Cantina Royale",
+ "CANTO": "CANTO",
"CANYA": "CanYaCoin",
"CAP": "Capverto",
+ "CAPA": "Cake Panda",
"CAPD": "Capdax",
"CAPO": "IL CAPO OF CRYPTO",
"CAPP": "Cappasity",
@@ -1617,12 +2010,14 @@
"CAPY": "Capybara",
"CAR": "CarBlock",
"CARAT": "Carats Token",
+ "CARBO": "CleanCarbon",
"CARBON": "Carboncoin",
"CARBONGEMS": "Carbon GEMS",
"CARD": "Cardstack",
"CARDS": "Cardstarter",
"CARE": "Carebit",
"CARES": "CareCoin",
+ "CARLO": "Carlo",
"CARO": "Meta Ricaro",
"CARPE": "CarpeDiemCoin",
"CARR": "Carnomaly",
@@ -1639,33 +2034,60 @@
"CAST": "Castello Coin",
"CASTLE": "bitCastle",
"CAT": "Cat Token",
+ "CATA": "CATAMOTO",
+ "CATAI": "Catgirl AI",
+ "CATBA": "CATBA INU",
"CATBOY": "Catboy",
"CATC": "Catcoin",
"CATCEO": "CATCEO",
+ "CATCH": "SpaceCatch",
"CATCOIN": "CatCoin Cash",
"CATCOINETH": "Catcoin",
+ "CATDOGE": "CAT DOGE",
"CATE": "CateCoin",
+ "CATELON": "CatElonMars",
+ "CATEX": "CATEX",
+ "CATFISH": "Catfish",
"CATGIRL": "Catgirl",
+ "CATGPT": "CatGPT",
+ "CATHAT": "catwifhat",
"CATHEON": "Catheon Gaming",
+ "CATHERO": "Cat Hero",
+ "CATKING": "CAT KING",
+ "CATMAN": "Catman",
+ "CATME": "ELON’S CAT",
+ "CATO": "CATO",
+ "CATPAY": "CATpay",
+ "CATPEPE": "CAT PEPE",
"CATS": "CatCoin Token",
+ "CATSHIRA": "Shira Cat",
"CATT": "Catex",
+ "CATVILLS": "Catvills Coin",
+ "CATWARRIOR": "Cat warrior",
+ "CATWIF": "CatWifHat",
"CATX": "CAT.trade Protocol",
"CATZ": "CatzCoin",
+ "CAU": "Canxium",
"CAVA": "Cavapoo",
+ "CAVADA": "Cavada",
"CAVE": "Deepcave",
"CAVO": "Excavo Finance",
"CAW": "A Hunters Dream",
"CAWCEO": "CAW CEO",
"CB": "COINBIG",
+ "CBABY": "Cosmo Baby",
"CBANK": "Crypto Bank",
"CBAT": "Compound Basic Attention Token",
"CBC": "Casino Betting Coin",
"CBD": "CBD Crystals",
"CBDC": "CannaBCoin",
+ "CBDG": "CBD Global",
"CBE": "The Chain of Business Entertainment",
+ "CBET": "CryptoBet",
"CBETH": "Coinbase Wrapped Staked ETH",
"CBFT": "CoinBene Future Token",
"CBG": "Chainbing",
+ "CBIXP": "Cubiex Power",
"CBK": "Cobak Token",
"CBM": "CryptoBonusMiles",
"CBNT": "Create Breaking News Together",
@@ -1677,6 +2099,7 @@
"CBSL": "CeBioLabs",
"CBSN": "BlockSwap Network",
"CBT": "CommerceBlock Token",
+ "CBU": "Banque Universal",
"CBUCKS": "CRYPTOBUCKS",
"CBUK": "CurveBlock",
"CBX": "CropBytes",
@@ -1687,6 +2110,7 @@
"CCAKE": "CheeseCake Swap",
"CCAR": "CryptoCars",
"CCASH": "C-cash",
+ "CCAT": "Crypto Cat",
"CCC": "CCCoin",
"CCCX": "Clipper Coin Capital",
"CCD": "Concordium",
@@ -1712,18 +2136,22 @@
"CCXC": "CoolinDarkCoin",
"CCXX": "CounosX",
"CDAI": "Compound Dai",
+ "CDCETH": "Crypto.com Staked ETH",
"CDEX": "Cryptodex",
"CDL": "CoinDeal Token",
"CDN": "Canada eCoin",
+ "CDOG": "Corn Dog",
"CDOGE": "cyberdoge",
"CDPT": "Creditor Data Platform",
"CDRX": "CDRX",
"CDT": "CheckDot",
"CDX": "CDX Network",
"CDY": "Bitcoin Candy",
+ "CDragon": "Clumsy Dragon",
"CEDEX": "CEDEX Coin",
"CEEK": "CEEK Smart VR Token",
"CEFS": "CryptopiaFeeShares",
+ "CEICAT": "CEILING CAT",
"CEJI": "Ceji",
"CEL": "Celsius Network",
"CELEB": "CELEBPLUS",
@@ -1765,6 +2193,7 @@
"CFun": "CFun",
"CGA": "Cryptographic Anomaly",
"CGG": "Chain Guardians",
+ "CGL": "Crypto Gladiator Shards",
"CGLD": "Celo Gold",
"CGO": "Comtech Gold",
"CGPT": "ChainGPT",
@@ -1772,11 +2201,13 @@
"CGT": "Coin Gabbar Token",
"CGU": "Crypto Gaming United",
"CHA": "Charity Coin",
+ "CHAD": "Chad Coin",
"CHADS": "CHADS VC",
"CHAIN": "Chain Games",
"CHAINCADE": "ChainCade",
"CHAL": "Chalice Finance",
"CHAMP": "NFT Champions",
+ "CHAMPZ": "Champz",
"CHAN": "ChanCoin",
"CHANCE": "Ante Casino",
"CHANGE": "ChangeX",
@@ -1788,16 +2219,19 @@
"CHARS": "CHARS",
"CHART": "BetOnChart",
"CHASH": "CleverHash",
- "CHAT": "OpenChat",
+ "CHAT": "Solchat",
+ "CHATGPT": "AI Dragon",
"CHB": "COINHUB TOKEN",
"CHBR": "CryptoHub",
"CHC": "ChainCoin",
+ "CHD": "CharityDAO",
"CHECK": "Paycheck",
"CHECKR": "CheckerChain",
"CHECOIN": "CheCoin",
"CHEDDA": "Chedda",
"CHEEL": "Cheelee",
"CHEEMS": "Cheems",
+ "CHEERS": "DICAPRIO CHEERS",
"CHEESE": "CHEESE",
"CHEESUS": "Cheesus",
"CHEQ": "CHEQD Network",
@@ -1805,9 +2239,12 @@
"CHERRY": "CherrySwap",
"CHESS": "Tranchess",
"CHESSCOIN": "ChessCoin",
+ "CHET": "ChetGPT",
+ "CHEWY": "Chewy",
"CHEX": "Chintai",
"CHFN": "NOKU CHF",
"CHFT": "Crypto Holding",
+ "CHFU": "Upper Swiss Franc",
"CHFX": "eToro Swiss Franc",
"CHH": "Chihuahua Token",
"CHI": "Chi Gastoken",
@@ -1818,6 +2255,8 @@
"CHII": "Chiiper Chain",
"CHILD": "ChildCoin",
"CHILI": "CHILI",
+ "CHILL": "ChillPill",
+ "CHINAZILLA": "ChinaZilla",
"CHINU": "Chubby Inu",
"CHIP": "Chip",
"CHIPS": "CHIPS",
@@ -1825,8 +2264,10 @@
"CHITCAT": "ChitCAT",
"CHIWAWA": "Chiwawa",
"CHK": "Chek",
+ "CHKN": "Chickencoin",
"CHLT": "Chellitcoin",
"CHMB": "Chumbi Valley",
+ "CHMPZ": "Chimpzee",
"CHN": "Chain",
"CHNG": "Chainge Finance",
"CHO": "Choise",
@@ -1835,15 +2276,22 @@
"CHONKY": "CHONKY",
"CHOOF": "ChoofCoin",
"CHOPPER": "Chopper Inu",
+ "CHOPPY": "Choppy",
"CHORIZO": "Chorizo",
"CHOW": "Chow Chow Finance",
+ "CHOY": "Bok Choy",
"CHP": "CoinPoker Token",
"CHR": "Chroma",
+ "CHRISPUMP": "Christmas Pump",
"CHRP": "Chirpley",
"CHS": "Chainsquare",
"CHSB": "SwissBorg",
"CHT": "Countinghouse Fund",
"CHUB": "CallHub",
+ "CHUCHU": "CHUCHU",
+ "CHUCK": "Chuck Norris",
+ "CHUMP": "Chump Change",
+ "CHURRO": "CHURRO-The Jupiter Dog",
"CHVF": "Chives Finance",
"CHW": "Chrysalis Coin",
"CHX": "Own",
@@ -1857,12 +2305,17 @@
"CIND": "Cindrum",
"CINNI": "CINNICOIN",
"CINU": "CHEEMS INU",
+ "CINUV1": "CHEEMS INU v1",
"CINX": "CINDX",
+ "CIOTX": "Crosschain IOTX",
"CIPHC": "Cipher Core Token",
"CIR": "CircuitCoin",
"CIRC": "CryptoCircuits",
"CIRCLE": "You Looked",
+ "CIRCUS": "Cirque Du Sol",
+ "CIRRUS": "Cirrus",
"CIRUS": "Cirus",
+ "CITI": "CITI Fediverse",
"CITY": "Manchester City Fan Token",
"CIV": "Civilization",
"CIVIT": "Civitas Protocol",
@@ -1883,24 +2336,34 @@
"CL": "CoinLancer",
"CLA": "ClaimSwap",
"CLAM": "CLAMS",
+ "CLASS": "Class Coin",
+ "CLAY": "Clay Nation",
"CLB": "Cloudbric",
+ "CLBR": "Colibri Protocol",
+ "CLCT": "CollectCoin",
"CLD": "Cloud",
"CLDX": "Cloverdex",
+ "CLEAR": "Clear Water",
"CLEARPOLL": "ClearPoll",
"CLEG": "Chain of Legends",
"CLEO": "Cleo Tech",
+ "CLEV": "CLever Token",
"CLEVERCOIN": "CleverCoin",
"CLFI": "cLFi",
"CLH": "ClearDAO",
"CLICK": "Clickcoin",
"CLIFF": "Clifford Inu",
+ "CLIMB": "CLIMB TOKEN FINANCE",
"CLIN": "Clinicoin",
"CLINK": "cLINK",
"CLINT": "Clinton",
+ "CLIPS": "Clips",
"CLIQ": "DefiCliq",
"CLIST": "Chainlist",
"CLM": "CoinClaim",
+ "CLMRS": "Crolon Mars",
"CLN": "Colu Local Network",
+ "CLNX": "Coloniume Network",
"CLNY": "Colony",
"CLO": "Callisto Network",
"CLOAK": "CloakCoin",
@@ -1928,15 +2391,19 @@
"CMCX": "CORE MultiChain",
"CMDX": "Comdex",
"CMERGE": "CoinMerge",
+ "CMFI": "Compendium",
+ "CMINER": "ChainMiner",
"CMIT": "CMITCOIN",
"CMK": "Credmark",
"CMKR": "cMKR",
"CML": "Camelcoin",
"CMM": "Commercium",
"CMN": "Crypto Media Network",
+ "CMOON": "CryptoMoonShot",
"CMOS": "CoinMerge OS",
"CMP": "Caduceus",
"CMPCO": "CampusCoin",
+ "CMPT": "Spatial Computing",
"CMQ": "Communique",
"CMS": "COMSA",
"CMSN": "The Commission",
@@ -1948,6 +2415,7 @@
"CNB": "Coinsbit Token",
"CNBC": "Cash & Back Coin",
"CNC": "ChinaCoin",
+ "CNCL": "The Ordinals Council",
"CNCT": "CONNECT",
"CND": "Cindicator",
"CNDL": "Candle",
@@ -1968,15 +2436,19 @@
"CNTR": "Centaur",
"CNUS": "CoinUs",
"CNX": "Cryptonex",
+ "CNYD": "Chinese NY Dragon",
"CNYT": "CNY Tether",
"CNYX": "eToro Chinese Yuan",
"CO": "Corite",
"CO2": "CO2 Token",
"COAL": "BitCoal",
"COB": "Cobinhood",
+ "COBE": "Castle of Blackwater",
"COC": "Coin of the champions",
"COCK": "Shibacock",
"COCO": "0xCoco",
+ "CODAI": "CODAI",
+ "CODEG": "CodeGenie",
"CODEO": "Codeo Token",
"CODEX": "CODEX Finance",
"CODI": "Codi Finance",
@@ -1998,19 +2470,24 @@
"COINSCOPE": "Coinscope",
"COINSL": "CoinsLoot",
"COINVEST": "Coinvest",
+ "COINYE": "Coinye West",
"COKE": "Cocaine Cowboy Shards",
"COL": "Clash of Lilliput",
"COLA": "Cola",
"COLL": "Collateral Pay",
"COLLAR": "PolyPup Finance",
"COLLE": "Collective Care",
+ "COLLECT": "CoinCollect",
"COLLG": "Collateral Pay Governance",
"COLR": "colR Coin",
"COLT": "Collateral Network",
"COLX": "ColossusCoinXT",
"COM": "Coliseum",
+ "COMAI": "Commune AI",
"COMB": "Combo",
"COMBO": "COMBO",
+ "COME": "Community of Meme",
+ "COMEW": "Coin In Meme World",
"COMFI": "CompliFi",
"COMM": "Community Coin",
"COMMUNITYCOIN": "Community Coin",
@@ -2018,15 +2495,19 @@
"COMPCOIN": "Compcoin",
"COMPD": "Compound Coin",
"COMT": "Community Token",
+ "CONAN": "Conan",
"CONDENSATE": "Condensate",
+ "CONDO": "CONDO",
"CONE": "BitCone",
"CONG": "The Conglomerate Capital",
"CONI": "CoinBene",
+ "CONJ": "Conjee",
"CONK": "ShibaPoconk",
"CONS": "ConSpiracy Coin",
"CONSENTIUM": "Consentium",
"CONV": "Convergence",
"CONX": "Connex",
+ "COOHA": "CoolHash",
"COOK": "Cook",
"COOL": "CoolCoin",
"COOP": "Coop Network",
@@ -2034,6 +2515,8 @@
"COPI": "Cornucopias",
"COPIUM": "Copium",
"COPS": "Cops Finance",
+ "COPYCAT": "Copycat Finance",
+ "COQ": "Coq Inu",
"COR": "Corion",
"CORAL": "CoralPay",
"CORE": "Core",
@@ -2044,6 +2527,7 @@
"CORGIAI": "CorgiAI",
"CORGIB": "The Corgi of PolkaBridge",
"CORN": "CORN",
+ "CORNELLA": "CORNELLA",
"CORX": "CorionX",
"COS": "Contentos",
"COSHI": "CoShi Inu",
@@ -2051,11 +2535,17 @@
"COSMIC": "CosmicSwap",
"COSP": "Cosplay Token",
"COSS": "COS",
+ "COST": "Costco Hot Dog",
"COSX": "Cosmecoin",
"COT": "CoTrader",
"COTI": "COTI",
"COU": "Couchain",
"COUNOS": "Counos Coin",
+ "COUNOSBIT": "Counos Bit",
+ "COUNOSH": "Counos H",
+ "COUNOSU": "Counos U",
+ "COUP": "CouponBay",
+ "COURAGE": "Courage the Cowardly Dog",
"COV": "Covesting",
"COVA": "COVA",
"COVAL": "Circuits of Value",
@@ -2070,6 +2560,7 @@
"COX": "CobraCoin",
"COY": "Coin Analyst",
"COZP": "COZPlus",
+ "COZY": "Cozy Pepe",
"CP": "CoPuppy",
"CPAD": "Cronospad",
"CPAN": "CryptoPlanes",
@@ -2077,14 +2568,18 @@
"CPC": "CPChain",
"CPCOIN": "CPCoin",
"CPD": "CoinsPaid",
+ "CPET": "Chain Pet",
"CPEX": "CoinPulseToken",
"CPH": "Cypherium",
"CPI": "Crypto Price Index",
+ "CPIGGY": "Vix Finance",
"CPL": "CoinPlace Token",
"CPLO": "Cpollo",
"CPN": "CompuCoin",
"CPO": "Cryptopolis",
+ "CPOO": "Cockapoo",
"CPOOL": "Clearpool",
+ "CPOS": "Cpos Cloud Payment",
"CPR": "Cipher",
"CPROP": "CPROP",
"CPRX": "Crypto Perx",
@@ -2107,13 +2602,23 @@
"CRAIG": "CraigsCoin",
"CRAMER": "Cramer Coin",
"CRANEPAY": "Cranepay",
+ "CRASH": "Solana Crash",
"CRAVE": "CraveCoin",
"CRAYRABBIT": "CrazyRabbit",
+ "CRAZYBONK": "CRAZY BONK",
+ "CRAZYBUNNY": "Crazy Bunny",
+ "CRAZYCAT": "CRAZY CAT",
+ "CRAZYDOGE": "CRAZY DOGE",
+ "CRAZYDRAGON": "CRAZY DRAGON",
+ "CRAZYMUSK": "CRAZY MUSK",
+ "CRAZYPEPE": "CrazyPepe",
"CRAZYTIGER": "CRAZY TIGER",
"CRB": "Creditbit",
"CRBN": "Carbon",
+ "CRBRUS": "Cerberus",
"CRC": "CryCash",
"CRD": "CRD Network",
+ "CRDC": "Cardiocoin",
"CRDN": "Cardence",
"CRDNC": "Credence Coin",
"CRDS": "Credits",
@@ -2122,6 +2627,7 @@
"CRE": "Carry",
"CRE8": "Creaticles",
"CREA": "CreativeChain",
+ "CREAL": "Celo Brazilian Real",
"CREAM": "Cream",
"CREATIVE": "Creative Token",
"CRED": "Verify",
@@ -2133,24 +2639,41 @@
"CREMAT": "Cremation Coin",
"CREO": "Creo Engine",
"CREP": "Compound Augur",
+ "CREPE": "Crepe Coin",
"CRES": "Cresio",
"CREV": "CryptoRevolution",
"CREVA": "Creva Coin",
+ "CREW": "CREW INU",
"CRF": "Crafting Finance",
"CRFI": "CrossFi",
"CRGO": "CargoCoin",
+ "CRGPT": "CryptoGPT",
+ "CRH": "Crypto Hunters Coin",
+ "CRHT": "CryptHub",
"CRI3X": "CRI3X",
+ "CRICKETS": "Kermit",
"CRIME": "Crime Gold",
+ "CRIMINGO": "Criminal Flamingo",
+ "CRK": "Croking",
"CRL": "Cryptelo Coin",
"CRM": "Cream",
+ "CRMS": "Cryptomus",
+ "CRNCHY": "Crunchy Network",
"CRNK": "CrankCoin",
"CRO": "Cronos",
"CROAT": "Croat",
+ "CROB": "Crob Coin",
+ "CROCO": "Croco",
"CROGE": "Crogecoin",
+ "CROID": "Cronos ID",
"CRON": "Cryptocean",
+ "CRONA": "CronaSwap",
+ "CRONK": "CRONK",
"CROPPER": "CropperFinance",
"CROWD": "CrowdCoin",
"CROWDWIZ": "Crowdwiz",
+ "CROWN": "Crown by Third Time Games",
+ "CROX": "CroxSwap",
"CRP": "Crypton",
"CRPS": "CryptoPennies",
"CRPT": "Crypterium",
@@ -2161,6 +2684,7 @@
"CRTM": "Cryptum",
"CRTS": "Cratos",
"CRU": "Crust Network",
+ "CRUIZ": "Cruiz",
"CRUX": "CryptoMines Reborn",
"CRV": "Curve DAO Token",
"CRVUSD": "crvUSD",
@@ -2170,6 +2694,7 @@
"CRWNY": "Crowny Token",
"CRX": "ChronosCoin",
"CRYN": "CRYN",
+ "CRYO": "CryoDAO",
"CRYP": "CrypticCoin",
"CRYPT": "CryptCoin",
"CRYPTOBULLION": "CryptoBullion",
@@ -2181,11 +2706,14 @@
"CRYSTAL": "Crystal",
"CRYSTALCLEAR": "Crystal Clear Token",
"CRYSTL": "Crystl Finance",
+ "CS": "Child Support",
"CSAC": "Credit Safe Application Chain",
"CSAI": "Compound SAI",
+ "CSAS": "csas (Ordinals)",
"CSC": "CasinoCoin",
"CSEN": "Consensus",
"CSH": "CashOut",
+ "CSIX": "Carbon Browser",
"CSM": "Crust Shadow",
"CSMIC": "Cosmic",
"CSNO": "BitDice",
@@ -2209,7 +2737,9 @@
"CTC": "Creditcoin",
"CTCN": "Contracoin",
"CTE": "Crypto Tron",
+ "CTEX": "Crypto tex",
"CTF": "CyberTime Finance",
+ "CTG": "City Tycoon Games",
"CTI": "ClinTex CTi",
"CTIC": "Coinmatic",
"CTK": "Shentu",
@@ -2232,6 +2762,8 @@
"CTX": "Cryptex",
"CTXC": "Cortex",
"CTY": "Connecty",
+ "CUAN": "CuanSwap.com",
+ "CUB": "Cub Finance",
"CUBE": "Cube Network",
"CUBEAUTO": "Cube",
"CUBEB": "CubeBase",
@@ -2241,6 +2773,7 @@
"CUEX": "Cuex",
"CULO": "CULO",
"CULT": "Cult DAO",
+ "CUM": "Cumbackbears",
"CUMINU": "CumInu",
"CUMMIES": "CumRocket",
"CUNI": "Compound Uni",
@@ -2264,6 +2797,7 @@
"CVC": "Civic",
"CVCC": "CryptoVerificationCoin",
"CVCOIN": "Crypviser",
+ "CVG": "Convergence",
"CVIP": "CVIP",
"CVNC": "CovenCoin",
"CVNG": "Crave-NG",
@@ -2272,16 +2806,21 @@
"CVPT": "Concentrated Voting Power",
"CVR": "Polkacover",
"CVS": "CoinVisa",
+ "CVSHOT": "CV SHOTS",
"CVT": "CyberVein",
"CVTC": "CavatCoin",
+ "CVTX": "Carrieverse",
"CVX": "Convex Finance",
"CVXCRV": "Convex CRV",
+ "CVXFXS": "Convex FXS",
"CW": "CardWallet",
+ "CWA": "Chris World Asset",
"CWAR": "Cryowar Token",
"CWBTC": "Compound Wrapped BTC",
"CWD": "CROWD",
"CWEB": "Coinweb",
"CWEX": "Crypto Wine Exchange",
+ "CWIF": "catwifhat",
"CWIS": "Crypto Wisdom Coin",
"CWN": "CryptoWorldNews",
"CWR": "Cowrium",
@@ -2305,15 +2844,20 @@
"CYBERD": "Cyber Doge",
"CYBERTRUCK": "Cyber Truck",
"CYBERWAY": "CyberWay",
+ "CYBONK": "CYBONK",
"CYBR": "CYBR",
"CYC": "Cyclone Protocol",
+ "CYCAT": "Chi Yamada Cat",
"CYCE": "Crypto Carbon Energy",
+ "CYCLE": "Cycle Finance",
"CYCLUB": "Cyclub",
"CYCON": "CONUN",
"CYDER": "Cyder Coin",
"CYFI": "cYFI",
"CYG": "Cygnus",
"CYL": "Crystal Token",
+ "CYM": "Cylum Finance",
+ "CYMT": "CyberMusic",
"CYOP": "CyOp Protocol",
"CYP": "CypherPunkCoin",
"CYRS": "Cyrus Token",
@@ -2327,11 +2871,15 @@
"CZR": "CanonChain",
"CZRX": "Compound 0x",
"CZSHARES": "CZshares",
+ "CZUSD": "CZUSD",
"CZZ": "ClassZZ",
"D": "Denarius",
"D11": "DeFi11",
+ "D2O": "DAM Finance",
"D2T": "Dash 2 Trade",
+ "D3D": "D3D Social",
"D4RK": "DarkPayCoin",
+ "DAAPL": "Apple Tokenized Stock Defichain",
"DAB": "DABANKING",
"DAC": "Davinci Coin",
"DACASH": "DACash",
@@ -2354,9 +2902,11 @@
"DAGT": "Digital Asset Guarantee Token",
"DAI": "Dai",
"DAILY": "Coindaily",
+ "DAILYS": "DailySwap Token",
"DAIMO": "Diamond Token",
"DAIN": "Dain Token",
"DAIQ": "Daiquilibrium",
+ "DAISY": "Daisy Launch Pad",
"DAL": "DAOLaunch",
"DALI": "Dalichain",
"DAM": "Datamine",
@@ -2364,14 +2914,19 @@
"DAMO": "Coinzen",
"DAN": "Daneel",
"DANA": "Ardana",
+ "DANG": "Guangdang",
+ "DANGEL": "dAngel Fund",
"DANK": "DarkKush",
"DAO": "DAO Maker",
+ "DAO1": "DAO1",
"DAOACT": "ACT",
"DAOB": "DAOBet",
"DAOP": "Dao Space",
+ "DAOSOL": "MonkeDAO",
"DAOVC": "DAO.VC",
"DAOX": "Daox",
"DAPP": "LiquidApps",
+ "DAPPSY": "Dappsy",
"DAPPT": "Dapp Token",
"DAPPX": "dAppstore",
"DAPS": "DAPS Coin",
@@ -2380,7 +2935,9 @@
"DARB": "Darb Token",
"DARC": "Konstellation",
"DARCRUS": "Darcrus",
+ "DARE": "The Dare",
"DARICO": "Darico",
+ "DARIK": "Darik",
"DARK": "Dark",
"DARKEN": "Dark Energy Crystals",
"DART": "dART Insurance",
@@ -2395,10 +2952,14 @@
"DATAWALLET": "DataWallet",
"DATP": "Decentralized Asset Trading Platform",
"DATX": "DATx",
+ "DAUMEN": "Daumenfrosch",
"DAV": "DAV",
"DAVE": "DAVE",
+ "DAVINCI": "Davincigraph",
"DAVIS": "Davis Cup Fan Token",
"DAVP": "Davion",
+ "DAW": "DAWKOINS",
+ "DAWCURRENCY": "Daw Currency",
"DAWG": "Dawg Coin",
"DAWGS": "SpaceDawgs",
"DAWN": "Dawn Protocol",
@@ -2413,9 +2974,11 @@
"DBD": "Day By Day",
"DBEAR": "DBear Coin",
"DBET": "Decent.bet",
+ "DBI": "Don't Buy Inu",
"DBIC": "DubaiCoin",
"DBIX": "DubaiCoin",
"DBL": "Doubloon",
+ "DBOE": "DBOE",
"DBOX": "DefiBox",
"DBR": "Düber",
"DBTC": "DebitCoin",
@@ -2426,16 +2989,23 @@
"DBY": "Dobuy",
"DBZ": "Diamond Boyz Coin",
"DC": "Dogechain",
+ "DCA": "AutoDCA",
"DCAR": "Dragon Crypto Argenti",
+ "DCARD": "DECENTRACARD",
"DCASH": "Diabolo",
+ "DCAU": "Dragon Crypto Aurum",
"DCB": "Decubate",
"DCC": "Distributed Credit Chain",
"DCCT": "DocuChain",
+ "DCHF": "DeFi Franc",
"DCIP": "Decentralized Community Investment Protocol",
"DCK": "DickCoin",
+ "DCLOUD": "DecentraCloud",
+ "DCM": "Ducky City",
"DCN": "Dentacoin",
"DCNT": "Decanect",
"DCNTR": "Decentrahub Coin",
+ "DCOIN": "Crypto Delivery",
"DCR": "Decred",
"DCRE": "DeltaCredits",
"DCRN": "Decred-Next",
@@ -2446,6 +3016,7 @@
"DCY": "Dinastycoin",
"DD": "DuckDAO",
"DDAM": "DDAM",
+ "DDAO": "DDAO Hunters",
"DDD": "Scry.info",
"DDDD": "People's Punk",
"DDF": "Digital Developers Fund",
@@ -2460,19 +3031,29 @@
"DDS": "DDS.Store",
"DDX": "DerivaDAO",
"DEA": "Degas Coin",
+ "DEAI": "Zero1 Lab",
"DEAL": "iDealCash",
"DEB": "Debitum Token",
"DEBASE": "Debase",
"DEBT": "The Debt Box",
"DEC": "Decentr",
+ "DECHAT": "Dechat",
+ "DECI": "Maximus DECI",
+ "DECL": "Decimal token",
"DECODE": "Decode Coin",
"DEDE": "Dede",
+ "DEED": "Deed (Ordinals)",
+ "DEEM": "iShares MSCI Emerging Markets ETF Defichain",
"DEEP": "DeepCloud AI",
"DEEPG": "Deep Gold",
+ "DEER": "ToxicDeer Finance",
"DEEX": "DEEX",
"DEEZ": "DEEZ NUTS",
+ "DEFC": "Defi Coin",
+ "DEFEND": "Blockdefend AI",
"DEFI": "Defi",
"DEFI5": "DEFI Top 5 Tokens Index",
+ "DEFIDO": "DeFido",
"DEFIL": "DeFIL",
"DEFISCALE": "DeFiScale",
"DEFIT": "Digital Fitness",
@@ -2480,12 +3061,14 @@
"DEFLCT": "Deflect",
"DEFLECT": "Deflect Harbor AI",
"DEFLY": "Deflyball",
+ "DEFROGS": "DeFrogs",
"DEFT": "DeFi Factory Token",
"DEFX": "DeFinity",
"DEFY": "DEFY",
"DEG": "Degis",
"DEGA": "Dega",
- "DEGEN": "DegenReborn",
+ "DEGEN": "Degen",
+ "DEGENR": "DegenReborn",
"DEGO": "Dego Finance",
"DEGOV": "Degov",
"DEGOV1": "Dego Finance v1",
@@ -2495,12 +3078,15 @@
"DEL": "Decimal",
"DELCHAIN": "DelChain",
"DELFI": "DeltaFi",
+ "DELOT": "DELOT.IO",
"DELTA": "Delta Financial",
"DELTAC": "DeltaChain",
"DEM": "eMark",
+ "DEMI": "DeMi",
"DEMIR": "Adana Demirspor Token",
"DEMOS": "DEMOS",
"DENT": "Dent",
+ "DEO": "Demeter",
"DEOD": "Decentrawood",
"DEOR": "Decentralized Oracle",
"DEP": "DEAPCOIN",
@@ -2516,6 +3102,8 @@
"DESO": "Decentralized Social",
"DESTINY": "Destiny",
"DESU": "Dexsport",
+ "DETENSOR": "DeTensor",
+ "DETF": "Decentralized ETF",
"DETH": "DarkEther",
"DEUR": "DigiEuro",
"DEUS": "DEUS Finance",
@@ -2523,6 +3111,7 @@
"DEVCOIN": "DevCoin",
"DEVO": "DeVolution",
"DEVT": "DeHorizon",
+ "DEVVE": "Devve",
"DEVX": "Developeo",
"DEX": "DEX",
"DEXA": "DEXA COIN",
@@ -2531,6 +3120,8 @@
"DEXIO": "Dexioprotocol",
"DEXM": "Dexmex",
"DEXNET": "DexNet",
+ "DEXO": "DEXO",
+ "DEXSHARE": "dexSHARE",
"DEXT": "DEXTools",
"DEXTF": "DEXTF",
"DEXTV1": "DEXTools V1",
@@ -2542,14 +3133,17 @@
"DFD": "DefiDollar DAO",
"DFG": "Defigram",
"DFGL": "DeFi Gold",
+ "DFH": "DeFiHorse",
"DFI": "DeFiChain",
"DFIAT": "DeFiato",
"DFIO": "DeFi Omega",
"DFIS": "DfiStarter",
"DFL": "DeFi Land",
"DFND": "dFund",
+ "DFNDR": "Defender Bot",
"DFP": "Digital Fund Coin",
"DFSG": "DFSocial Gaming",
+ "DFSM": "DFS MAFIA",
"DFSOCIAL": "DefiSocial (OLD)",
"DFSPORTS": "Digital Fantasy Sports",
"DFT": "DigiFinexToken",
@@ -2562,33 +3156,45 @@
"DGCL": "DigiCol Token",
"DGD": "Digix DAO",
"DGDC": "DarkGold",
+ "DGEN": "The MVP Society",
"DGH": "Digihealth",
"DGI": "DGI Game",
"DGLD": "Digital Gold",
+ "DGLN": "Dogelana",
"DGM": "DigiMoney",
"DGME": "GameStop Tokenized Stock Defichain",
"DGMS": "Digigems",
+ "DGMT": "DigiMax DGMT",
+ "DGMV": "DigiMetaverse",
"DGN": "Diagon",
"DGNX": "DegenX",
+ "DGOLD": "PolyDragon",
"DGORE": "DogeGoreCoin",
"DGP": "DGPayment",
"DGPT": "DigiPulse",
"DGTX": "Digitex Token",
"DGVC": "DegenVC",
"DGX": "Digix Gold token",
+ "DHLT": "DeHealth",
"DHN": "Dohrnii",
"DHP": "dHealth",
"DHR": "DeHR Network",
"DHS": "Dirham Crypto",
"DHT": "dHedge DAO",
"DHV": "DeHive",
+ "DHX": "DataHighway",
"DIA": "DIA",
+ "DIABLO": "Diablo IV",
"DIAM": "Diamond",
"DIAMND": "Projekt Diamond",
+ "DIAMOND": "Diamond Coin",
+ "DIBBLE": "Dibbles",
+ "DIBC": "DIBCOIN",
"DIC": "Daikicoin",
"DICE": "Klaydice",
"DICEM": "DICE Money",
"DICETRX": "TRONbetDice",
+ "DICK": "adDICKted",
"DID": "Didcoin",
"DIE": "Die Protocol",
"DIEM": "Facebook Diem",
@@ -2596,6 +3202,8 @@
"DIFI": "Digital Files",
"DIFX": "Digital Financial Exchange",
"DIG": "DIEGO",
+ "DIGAU": "Dignity Gold",
+ "DIGEX": "Digex",
"DIGG": "DIGG",
"DIGI": "Digiverse",
"DIGIC": "DigiCube",
@@ -2605,10 +3213,12 @@
"DIGS": "Diggits",
"DIKO": "Arkadiko",
"DILI": "D Community",
+ "DILL": "dillwifit",
"DIM": "DIMCOIN",
"DIME": "DimeCoin",
"DIMO": "DIMO",
"DIN": "Dinero",
+ "DINERO": "Dinerobet",
"DINGER": "Dinger Token",
"DINGO": "Dingocoin",
"DINO": "DinoSwap",
@@ -2618,11 +3228,13 @@
"DIONE": "Dione",
"DIP": "Etherisc",
"DIPA": "Doge Ipa",
- "DIS": "TosDis",
+ "DIRTY": "Dirty Street Cats",
+ "DIS": "DisChain",
"DISCOVERY": "DiscoveryIoT",
"DISK": "Dark Lisk",
"DISPEPE": "Disabled Pepe",
"DIT": "Ditcoin",
+ "DITH": "Dither AI",
"DIVA": "DIVA Protocol",
"DIVER": "Divergence Protocol",
"DIVI": "Divi Project",
@@ -2631,19 +3243,23 @@
"DIW": "DIWtoken",
"DIYAR": "Diyarbekirspor Token",
"DJED": "Djed",
+ "DJT": "Save America",
"DK": "Dominant Kong",
"DKA": "dKargo",
"DKC": "DarkKnightCoin",
"DKD": "Dekado",
"DKEY": "DKEY Bank",
"DKKT": "DKK Token",
+ "DKNIGHT": "Dark Knight",
"DKS": "DarkShield",
"DKUMA": "KumaDex Token",
"DLA": "Dolla",
"DLANCE": "DeeLance",
"DLC": "Diamond Launch",
"DLISK": "Dlisk",
+ "DLLR": "Sovryn Dollar",
"DLO": "Delio",
+ "DLORD": "DORK LORD",
"DLPD": "DLP Duck Token",
"DLPT": "Deliverers Power Token",
"DLR": "DollarOnline",
@@ -2651,13 +3267,17 @@
"DLTA": "delta.theta",
"DLX": "DAppLinks",
"DLXV": "Delta-X",
+ "DLY": "Daily Finance",
"DLYCOP": "Daily COP",
+ "DMA": "Dragoma",
"DMAIL": "DMAIL Network",
"DMC": "Dream21",
+ "DMCC": "DiscoverFeed",
"DMCH": "DARMA Cash",
"DMD": "DMD",
"DMG": "DMM: Governance",
"DMGBULL": "3X Long DMM Governance Token",
+ "DMIND": "DecentraMind",
"DML": "Decentralized Machine Learning",
"DMLG": "Demole",
"DMOD": "Demodyfi Token",
@@ -2675,6 +3295,7 @@
"DNFT": "DareNFT",
"DNN": "DNN Token",
"DNO": "Denaro",
+ "DNODE": "DecentraNode",
"DNOTES": "Dnotes",
"DNS": "BitDNS",
"DNT": "district0x",
@@ -2684,19 +3305,25 @@
"DNXC": "DinoX",
"DNY": "Dynasty Coin",
"DNZ.BITCI": "Denizlispor Fan Token",
+ "DOBBY": "Dobby",
+ "DOBEN": "dark boden",
"DOBO": "DogeBonk",
"DOC": "Dochain",
"DOCC": "Doc Coin",
"DOCK": "Dock.io",
+ "DOCSWAP": "Dex on Crypto",
"DOCT": "DocTailor",
"DOD": "Day Of Defeat 2.0",
"DOD100": "Day of Defeat Mini 100x",
"DODI": "DoubleDice",
"DODO": "DODO",
"DOE": "Dogs Of Elon",
+ "DOFI": "Doge Floki Coin",
"DOG": "The Doge NFT",
"DOGA": "Dogami",
"DOGACOIN": "DogaCoin",
+ "DOGAI": "Dogai",
+ "DOGALD": "dogald trump",
"DOGB": "DogeBoy",
"DOGBOSS": "Dog Boss",
"DOGC": "Dogeclub",
@@ -2707,65 +3334,95 @@
"DOGEBNB": "DogeBNB",
"DOGEC": "DogeCash",
"DOGECEO": "Doge CEO",
+ "DOGECO": "Dogecolony",
"DOGECOIN": "Buff Doge Coin",
"DOGECOLA": "DogeCola",
"DOGECUBE": "DogeCube",
"DOGED": "DogeCoinDark",
"DOGEDAO": "DogeDao",
"DOGEDASH": "Doge Dash",
+ "DOGEFORK": "DogeFork",
"DOGEGF": "DogeGF",
+ "DOGEGROK": "Doge Grok",
+ "DOGEGROKAI": "Doge Of Grok AI",
+ "DOGEKING": "DogeKing",
+ "DOGELEGION": "DOGE LEGION",
"DOGEMETA": "Dogemetaverse",
+ "DOGEP": "Doge Protocol",
"DOGEPAY": "Doge Payment",
+ "DOGERA": "Dogera",
+ "DOGES": "Dogeswap",
"DOGESWAP": "Dogeswap Token (HECO)",
"DOGETH": "EtherDoge",
"DOGEWHALE": "Dogewhale",
"DOGEX": "DogeHouse Capital",
+ "DOGEY": "Dogey",
"DOGEZILLA": "DogeZilla",
"DOGGY": "Doggy",
+ "DOGI": "dogi",
+ "DOGIN": "Doginhood",
+ "DOGINME": "doginme",
"DOGIRA": "Dogira",
"DOGMI": "DOGMI",
"DOGO": "DogemonGo",
"DOGPAD": "DogPad Finance",
"DOGRMY": "DogeArmy",
+ "DOGS": "Dogcoin",
"DOGSROCK": "Dogs Rock",
+ "DOGSWAG": "DogSwaghat",
"DOGWIFHAT": "dogwifhat",
"DOGY": "DogeYield",
"DOGZ": "Dogz",
"DOJO": "ProjectDojo",
"DOKI": "Doki Doki Finance",
+ "DOKY": "Donkey King",
"DOLA": "Dola USD Stablecoin",
"DOLLARCOIN": "DollarCoin",
+ "DOLLUR": "Dollur Go Brrr",
"DOLZ": "DOLZ",
+ "DOM": "Ancient Kingdom",
"DOME": "Everdome",
"DOMI": "Domi",
"DON": "Donnie Finance",
"DONA": "DONASWAP",
+ "DONALD": "DONALD TRUMP",
"DONATION": "DonationCoin",
"DONG": "DongCoin",
+ "DONGO": "Dongo AI",
"DONK": "Don-key",
"DONS": "The Dons",
"DONU": "Donu",
"DONUT": "Donut",
+ "DONUTS": "The Simpsons",
+ "DOODOO": "Doodoo",
"DOOH": "Bidooh",
"DOOR": "DOOR",
- "DOPE": "DopeCoin",
+ "DOPE": "Dopamine App",
+ "DOPECOIN": "DopeCoin",
"DOR": "Dorado",
"DORA": "Dora Factory",
+ "DORK": "DORK",
"DORKL": "DORK LORD",
"DOS": "DOS Network",
"DOSE": "DOSE",
+ "DOSHIB": "DogeShiba",
"DOT": "Polkadot",
"DOTC": "Dotcoin",
"DOTR": "Cydotori",
"DOUGH": "PieDAO v2 (DOUGH)",
"DOV": "DOVU",
"DOVI": "Dovi(Ordinals)",
+ "DOVU": "DOVU",
"DOWS": "Shadows",
"DP": "DigitalPrice",
+ "DPAD": "Dpad Finance",
"DPAY": "DelightPay",
+ "DPDBC": "PDBC Defichain",
"DPET": "My DeFi Pet",
+ "DPEX": "DPEX",
"DPI": "DeFiPulse Index",
"DPIE": "DeFiPie",
+ "DPLN": "DePlan",
"DPLTR": "Palantir Tokenized Stock Defichain",
"DPN": "DIPNET",
"DPP": "Digital Assets Power Play",
@@ -2776,14 +3433,20 @@
"DPY": "Delphy",
"DQQQ": "Invesco QQQ Trust Defichain",
"DRA": "DraculaCoin",
+ "DRAC": "DRAC Network",
+ "DRACE": "DeathRoad",
"DRACO": "DT Token",
"DRACOO": "DracooMaster",
"DRAFTC": "Draftcoin",
"DRAGON": "Dragon",
"DRAGONGROK": "DragonGROK",
+ "DRAGONKING": "DragonKing",
"DRAGONMA": "Dragon Mainland Shards",
+ "DRAGU": "DRAGU",
"DRAGY": "Dragy",
+ "DRAM": "DRAM",
"DRAW": "Drawshop Kingdom Reverse",
+ "DRB": "Digimon Rabbit",
"DRC": "DRC Mobility",
"DRCT": "Ally Direct",
"DRE": "DoRen",
@@ -2793,6 +3456,7 @@
"DRF": "Drife",
"DRG": "Dragon Coin",
"DRGN": "Dragonchain",
+ "DRIFT": "Drift protocol",
"DRINK": "DrinkChain",
"DRIP": "Drip Network",
"DRIV": "DRIVEZ",
@@ -2805,6 +3469,7 @@
"DRONE": "Drone Coin",
"DROP": "Dropil",
"DROPS": "Drops",
+ "DROVERS": "Drover Inu",
"DRP": "DCORP",
"DRPU": "DRP Utility",
"DRS": "Digital Rupees",
@@ -2821,11 +3486,16 @@
"DSG": "Dinosaureggs",
"DSH": "Dashcoin",
"DSHARE": "Dibs Share",
+ "DSHIB": "DOLLAR SHIBA INU",
+ "DSK": "Darüşşafaka Spor Kulübü Token",
"DSLA": "DSLA Protocol",
+ "DSLV": "iShares Silver Trust Defichain",
"DSR": "Desire",
+ "DSRUN": "Derby Stars",
"DST": "Double Swap Token",
"DSTR": "Dynamic Supply Tracker",
"DSUN": "DsunDAO",
+ "DSYNC": "Destra Network",
"DT": "DarkToken",
"DT1": "Dollar Token 1",
"DTA": "Data",
@@ -2836,11 +3506,14 @@
"DTEP": "DECOIN",
"DTG": "Defi Tiger",
"DTH": "Dether",
+ "DTLT": "iShares 20+ Year Treasury Bond ETF Defichain",
"DTN": "Datareum",
"DTO": "DotOracle",
"DTOP": "DTOP Token",
+ "DTORO": "DexToro",
"DTR": "Dotori",
"DTRC": "Datarius",
+ "DTSLA": "Tesla Tokenized Stock Defichain",
"DTX": "DataBroker DAO",
"DUA": "Brillion",
"DUAL": "Dual Finance",
@@ -2848,31 +3521,42 @@
"DUBAICAT": "Dubai Cat",
"DUBBZ": "Dubbz",
"DUBI": "Decentralized Universal Basic Income",
+ "DUBX": "DUBXCOIN",
"DUC": "DucatusCoin",
"DUCATO": "Ducato Protocol Token",
"DUCK": "Unit Protocol New",
"DUCKD": "DuckDuckCoin",
+ "DUCKER": "Ducker",
"DUCKIES": "Yellow Duckies",
+ "DUDE": "DuDe",
"DUEL": "Duel Network",
"DUELERS": "Block Duelers",
"DUET": "Duet Protocol",
"DUG": "DUG",
+ "DUGE": "DUGE",
"DUK+": "Dukascoin",
"DUKE": "Duke Inu",
+ "DUKO": "DUKO",
"DUMMY": "Dummy",
"DUN": "Dune",
+ "DUNG": "Scarab Tools",
"DUO": "ParallelCoin",
"DUOT": "DUO Network",
+ "DUREV": "Povel Durev",
"DUSD": "Decentralized USD",
"DUSK": "Dusk Network",
"DUST": "DUST Protocol",
"DUX": "DuxCoin",
+ "DUZCE": "Duzce Token",
"DV": "Dreamverse",
"DVC": "DragonVein",
"DVDX": "Derived",
"DVF": "Rhino.fi",
"DVG": "DAOventures",
"DVI": "Dvision Network",
+ "DVK": "Devikins",
+ "DVNQ": "Vanguard Real Estate Tokenized Stock Defichain ()",
+ "DVOO": "Vanguard S&P 500 ETF Tokenized Stock Defichain",
"DVP": "Decentralized Vulnerability Platform",
"DVPN": "Sentinel",
"DVRS": "DaoVerse",
@@ -2880,10 +3564,13 @@
"DVT": "DeVault",
"DVTC": "DivotyCoin",
"DVX": "Derivex",
+ "DWARS": "Dynasty Wars",
"DWC": "Digital Wallet",
"DWEB": "DecentraWeb",
+ "DWT": "DiveWallet Token",
"DWZ": "DeFi Wizard",
"DX": "DxChain Token",
+ "DXA": "DEXART",
"DXB": "DefiXBet",
"DXC": "DixiCoin",
"DXCT": "DNAxCAT",
@@ -2896,6 +3583,7 @@
"DXN": "DEXON",
"DXO": "Dextro",
"DXR": "DEXTER",
+ "DXS": "Dx Spot",
"DXT": "Dexit Finance",
"DYC": "Dycoin",
"DYDX": "dYdX",
@@ -2904,9 +3592,11 @@
"DYNA": "Dynamix",
"DYNAMICTRADING": "Dynamic Trading Rights",
"DYNCOIN": "Dyncoin",
+ "DYNEX": "Dynex GPU",
"DYNMT": "Dynamite",
"DYNO": "DYNO",
"DYP": "Dypius",
+ "DYPV1": "Dypius v1",
"DYST": "Dystopia",
"DYT": "DoYourTip",
"DYZILLA": "DYZilla",
@@ -2919,9 +3609,11 @@
"Dow": "DowCoin",
"E21": "E21 Coin",
"E2C": "Electronic Energy Coin",
+ "E8": "Energy8",
"EA": "EagleCoin",
"EAC": "Education Assessment Cult",
"EAG": "Emerging Assets Group",
+ "EAGLE": "Eagle Token",
"EAGS": "EagsCoin",
"EAI": "Edain",
"EARN": "EarnGuild",
@@ -2941,8 +3633,11 @@
"EBOX": "Ethbox Token",
"EBS": "EbolaShare",
"EBSC": "EarlyBSC",
+ "EBSO": "eBlockStock",
"EBST": "eBoost",
+ "EBT": "ELON BUYS TWITTER",
"EBTC": "eBitcoin",
+ "EBYT": "EarthByt",
"EBZ": "Ebitz",
"EC": "Echoin",
"ECA": "Electra",
@@ -2950,6 +3645,8 @@
"ECC": "Etherconnect",
"ECD": "Echidna",
"ECELL": "Consensus Cell Network",
+ "ECET": "Evercraft Ecotechnologies",
+ "ECG": "EcoSmart",
"ECH": "EthereCash",
"ECHO": "ECHO BOT",
"ECHT": "e-Chat",
@@ -2967,6 +3664,7 @@
"ECOX": "ECOx",
"ECP": "ECP+ Technology",
"ECR": "EcoVerse",
+ "ECS": "eCredits",
"ECT": "SuperEdge",
"ECTE": "EurocoinToken",
"ECU": "ECOSC",
@@ -2975,16 +3673,20 @@
"EDDA": "EDDASwap",
"EDDIE": "Eddie coin",
"EDE": "El Dorado Exchange",
+ "EDEL": "Coin Edelweis",
"EDEN": "EDEN",
"EDEXA": "edeXa Security Token",
"EDFI": "EdFi",
"EDG": "Edgeless",
"EDGE": "EDGE",
+ "EDGESOL": "Edgevana Staked SOL",
"EDGEW": "Edgeware",
"EDGT": "Edgecoin",
+ "EDI": "Freight Trust & Clearing Network",
"EDLC": "Edelcoin",
"EDN": "EdenChain",
"EDNS": "EDNS Token",
+ "EDOGE": "ElonDoge",
"EDR": "Endor Protocol Token",
"EDRC": "EDRCoin",
"EDT": "E-Drive Token",
@@ -2992,8 +3694,10 @@
"EDUC": "EducoinV",
"EDUCOIN": "EduCoin",
"EDUM": "EDUM",
+ "EDUX": "Edufex",
"EDX": "Equilibrium",
"EER": "Ethereum eRush",
+ "EETH": "ether fi",
"EFBAI": "EuroFootball AI",
"EFC": "Everton Fan Token",
"EFFT": "Effort Economy ",
@@ -3001,7 +3705,9 @@
"EFIL": "Ethereum Wrapped Filecoin",
"EFK": "ReFork",
"EFL": "E-Gulden",
+ "EFT": "ETH Fan Token Ecosystem",
"EFX": "The Effect.ai",
+ "EG": "EG Token",
"EGAME": "Every Game",
"EGAS": "ETHGAS",
"EGAZ": "EGAZ",
@@ -3013,9 +3719,12 @@
"EGGC": "EggCoin",
"EGGMAN": "Eggman Inu",
"EGGP": "Eggplant Finance",
+ "EGGY": "EGGY",
"EGI": "eGame",
"EGLD": "eGold",
"EGO": "EGOcoin",
+ "EGOLD": "EGOLD",
+ "EGON": "EgonCoin",
"EGR": "Egoras Rights",
"EGRN": "Energreen",
"EGS": "EdgeSwap",
@@ -3025,11 +3734,13 @@
"EHIVE": "eHive",
"EHRT": "Eight Hours Token",
"EIFI": "EIFI FINANCE",
+ "EIM": "Expert Infra",
"EJAC": "EJA Coin",
"EJS": "Enjinstarter",
"EKG": "Ekon Gold",
"EKN": "Elektron",
"EKO": "EchoLink",
+ "EKS": "Elumia Krystal Shards",
"EKT": "EDUCare",
"EKTA": "Ekta",
"EL": "ELYSIA",
@@ -3044,16 +3755,23 @@
"ELDA": "Eldarune",
"ELE": "Elementrem",
"ELEC": "Electrify.Asia",
+ "ELECTRON": "Electron (Atomicals)",
"ELEMENTS": "Elements",
"ELEN": "Everlens",
+ "ELEPEPE": "ElephantPepe",
+ "ELEPHANT": "Elephant Money",
"ELES": "Elements Estates",
"ELET": "Elementeum",
"ELF": "aelf",
+ "ELFI": "ELYFI",
"ELG": "EscoinToken",
+ "ELGATO": "el gato",
"ELI": "GoCrypto",
"ELIC": "Elicoin",
"ELITE": "EthereumLite",
"ELIX": "Elixir",
+ "ELIXIR": "Starchi",
+ "ELK": "Elk Finance",
"ELLA": "Ellaism",
"ELLI": "ElliotCoin",
"ELM": "Elements Play",
@@ -3062,7 +3780,9 @@
"ELMT": "Element",
"ELON": "Dogelon Mars",
"ELON2024": "ELON 2024(BSC)",
+ "ELON404": "Elon404",
"ELONCAT": "ELON CAT COIN",
+ "ELONDOGE": "ELON DOGE",
"ELONDRAGON": "ELON DRAGON",
"ELONGD": "Elongate Deluxe",
"ELONGT": "Elon GOAT",
@@ -3075,13 +3795,16 @@
"ELT": "Element Black",
"ELTC2": "eLTC",
"ELTCOIN": "ELTCOIN",
+ "ELTG": "Graphen",
"ELU": "Elumia",
+ "ELUSKMON": "Elusk Mon",
"ELV": "Elvantis",
"ELVN": "11Minutes",
"ELX": "Energy Ledger",
"ELY": "Elysian",
"ELYSIUM": "Elysium",
"EM": "Eminer",
+ "EMAID": "MaidSafeCoin",
"EMANATE": "EMANATE",
"EMAR": "EmaratCoin",
"EMAX": "EthereumMax",
@@ -3103,16 +3826,20 @@
"EMPH": "Emphy",
"EMPIRE": "Empire Token",
"EMPR": "empowr",
+ "EMRLD": "The Emerald Company",
"EMRX": "Emirex Token",
"EMT": "EasyMine",
"EMU": "eMusic",
"EMV": "Ethereum Movie Venture",
"EMX": "EMX",
+ "ENA": "Ethena",
"ENC": "Encores Token",
"ENCD": "Encircled",
"ENCN": "EndChain",
"ENCRYPG": "EncrypGen",
+ "ENCS": "ENCOINS",
"ENCX": "Encrybit",
+ "ENDCEX": "Endpoint CeX Fan Token",
"ENDLESS": "Endless Board Game",
"ENE": "EneCoin",
"ENEDEX": "Enedex",
@@ -3136,6 +3863,7 @@
"ENTRC": "ENTER COIN",
"ENTRP": "Hut34 Project",
"ENTRY": "ENTRY",
+ "ENTS": "Ents",
"ENTT": "Presale Ventures",
"ENU": "Enumivo",
"ENV": "ENVOY",
@@ -3150,9 +3878,12 @@
"EOSC": "EOSForce",
"EOSDAC": "eosDAC",
"EOSDT": "EOSDT",
+ "EOST": "EOS TRUST",
+ "EOTH": "Echo Of The Horizon",
"EOX": "EXTRA ORDINARY",
"EPAN": "Paypolitan Token",
"EPANUS": "Epanus",
+ "EPEP": "Epep",
"EPETS": "Etherpets",
"EPIC": "Epic Cash",
"EPIK": "EPIK Token",
@@ -3164,6 +3895,7 @@
"EPX": "Ellipsis X",
"EPY": "Empyrean",
"EQ": "Equilibrium Games",
+ "EQ9": "EQ9",
"EQC": "Ethereum Qchain Token",
"EQL": "EQUAL",
"EQM": "Equilibrium Coin",
@@ -3187,6 +3919,7 @@
"ERE": "Erecoin",
"EREAL": "eREAL",
"ERG": "Ergo",
+ "ERIC": "Elon's Pet Fish ERIC",
"ERIS": "Eristica",
"ERK": "Eureka Coin",
"ERO": "Eroscoin",
@@ -3194,6 +3927,7 @@
"EROTICA": "Erotica",
"ERR": "Coinerr",
"ERROR": "484 Fund",
+ "ERROR404": "ERROR404 MEME",
"ERRORCOIN": "ErrorCoin",
"ERSDL": "UnFederalReserve",
"ERT": "Esports.com",
@@ -3201,10 +3935,14 @@
"ERTHA": "Ertha",
"ERW": "ZeLoop Eco Reward",
"ERY": "Eryllium",
+ "ERZ": "Erzurumspor Token",
"ES": "Era Swap Token",
+ "ESAI": "Ethscan AI",
"ESBC": "ESBC",
"ESCE": "Escroco Emerald",
+ "ESCROW": "Cryptegrity DAO",
"ESD": "Empty Set Dollar",
+ "ESE": "Eesee",
"ESES.BITCI": "Eskişehir Fan Tokens",
"ESG": "ESG",
"ESGC": "ESG Chain",
@@ -3248,6 +3986,8 @@
"ETHERNITY": "Ethernity Chain",
"ETHEROLL": "Etheroll",
"ETHF": "EthereumFair",
+ "ETHFAI": "ETHforestAI",
+ "ETHFI": "Ether.fi",
"ETHI": "Ethical Finance",
"ETHIX": "EthicHub",
"ETHM": "Ethereum Meta",
@@ -3276,10 +4016,12 @@
"ETP": "Metaverse",
"ETPOS": "EtherPOS",
"ETR": "Electric Token",
+ "ETRL": "Ethereal",
"ETRNT": "Eternal Trusts",
"ETS": "ETH Share",
"ETSC": "Ether star blockchain",
"ETT": "EncryptoTel",
+ "ETX": "Ethrix",
"ETY": "Ethereum Cloud",
"ETZ": "EtherZero",
"EUC": "Eurocoin",
@@ -3297,6 +4039,7 @@
"EURU": "Upper Euro",
"EURX": "eToro Euro",
"EUSD": "Egoras Dollar",
+ "EV": "EVAI",
"EVA": "Evadore",
"EVAN": "Evanesco Network",
"EVAULT": "EthereumVault",
@@ -3305,23 +4048,28 @@
"EVCOIN": "EverestCoin",
"EVDC": "Electric Vehicle Direct Currency",
"EVE": "Devery",
+ "EVEAI": "EVEAI",
"EVED": "Evedo",
"EVENC": "EvenCoin",
"EVENT": "Event Token",
"EVER": "Everscale",
"EVEREST": "Everest",
+ "EVERETH": "EverETH Reflect",
"EVERGREEN": "EverGreenCoin",
"EVERLIFE": "EverLife.AI",
"EVERMOON": "EverMoon",
+ "EVERY": "Everyworld",
"EVIL": "EvilCoin",
"EVILPEPE": "Evil Pepe",
"EVMOS": "Evmos",
"EVN": "Evn Token",
"EVO": "EvoVerses",
+ "EVOAI": "EvolveAI",
"EVOL": "EVOL NETWORK",
"EVOS": "EVOS",
"EVR": "Everus",
"EVRICE": "Evrice",
+ "EVRT": "Everest Token",
"EVRY": "Evrynet",
"EVT": "EveriToken",
"EVU": "Evulus Token",
@@ -3329,6 +4077,8 @@
"EVY": "EveryCoin",
"EVZ": "Electric Vehicle Zone",
"EWC": "Erugo World Coin",
+ "EWIF": "elonwifcoin",
+ "EWON": "Ewon Mucks",
"EWT": "Energy Web Token",
"EWTT": "Ecowatt",
"EXA": "Exactly Protocol",
@@ -3337,9 +4087,11 @@
"EXCC": "ExchangeCoin",
"EXCHANGEN": "ExchangeN",
"EXCL": "Exclusive Coin",
+ "EXD": "Exorde",
"EXE": "ExeCoin",
"EXEN": "Exen Coin",
"EXFI": "Flare Finance",
+ "EXGO": "EXGOLAND",
"EXIP": "EXIP",
"EXIT": "ExitCoin",
"EXLT": "ExtraLovers",
@@ -3348,11 +4100,15 @@
"EXN": "Exeno",
"EXNT": "EXNT",
"EXO": "Exosis",
+ "EXOS": "Exobots",
"EXP": "Expanse",
+ "EXPO": "Exponential Capital",
"EXRD": "Radix",
"EXRN": "EXRNchain",
"EXTN": "Extensive Coin",
"EXTP": "TradePlace",
+ "EXTRA": "Extra Finance",
+ "EXVG": "Exverse",
"EXY": "Experty",
"EXZO": "ExzoCoin 2.0",
"EYE": "MEDIA EYE",
@@ -3360,11 +4116,14 @@
"EYETOKEN": "EYE Token",
"EZ": "EasyFi V2",
"EZC": "EZCoin",
+ "EZETH": "Renzo Restaked ETH",
+ "EZI": "Ezillion",
"EZM": "EZMarket",
"EZT": "EZToken",
"EZY": "EzyStayz",
"ElvishMagic": "EMAGIC",
"F16": "F16Coin",
+ "F1C": "Future1coin",
"F2C": "Ftribe Fighters",
"F2K": "Farm2Kitchen",
"F3": "Friend3",
@@ -3385,6 +4144,7 @@
"FAIRC": "Faireum Token",
"FAIRG": "FairGame",
"FAKE": "FAKE COIN",
+ "FAKEAI": "DeepFakeAI",
"FAKT": "Medifakt",
"FALCONS": "Falcon Swaps",
"FAME": "Fame MMA",
@@ -3393,7 +4153,10 @@
"FAN": "Fanadise",
"FAN360": "Fan360",
"FANC": "fanC",
+ "FAND": "Fandomdao",
+ "FANG": "FANG Token",
"FANV": "FanVerse",
+ "FANX": "FrontFanz",
"FANZ": "FanChain",
"FAR": "Farmland Protocol",
"FARA": "FaraLand",
@@ -3408,18 +4171,24 @@
"FASTSWAP": "Fastswap",
"FAT": "Fatcoin",
"FATCAKE": "FatCake",
+ "FATHER": "DogeFather",
+ "FATHOM": "Fathom",
"FAV": "Football At AlphaVerse",
"FAVR": "FAVOR",
+ "FAYD": "Fayda",
"FAYRE": "Fayre",
"FAZZ": "FazzCoin",
"FB": "Fenerbahçe Token",
"FBA": "Firebird Aggregator",
"FBB": "FilmBusinessBuster",
+ "FBG": "Fort Block Games",
"FBN": "Five balance",
"FBNB": "ForeverBNB",
+ "FBURN": "Forever Burn",
"FBX": "Finance Blocks",
"FC": "Facecoin",
"FC2": "Fuel2Coin",
+ "FCC": "Freechat",
"FCD": "FreshCut Diamond",
"FCF": "French Connection Finance",
"FCH": "Freecash",
@@ -3428,6 +4197,7 @@
"FCN": "FantomCoin",
"FCOIN": "FCoin",
"FCON": "SpaceFalcon",
+ "FCP": "FILIPCOIN",
"FCQ": "Fortem Capital",
"FCS": "CryptoFocus",
"FCT": "FirmaChain",
@@ -3442,9 +4212,12 @@
"FDX": "fidentiaX",
"FDZ": "Friendz",
"FEAR": "Fear",
+ "FECES": "FECES",
"FEED": "Feeder Finance",
"FEENIXV2": "ProjectFeenixv2",
+ "FEES": "UNIFEES",
"FEG": "FEG Token",
+ "FEGV1": "FEG Token v1",
"FEI": "Fei Protocol",
"FELIX": "FelixCoin",
"FELIX2": "Felix 2.0 ETH",
@@ -3454,6 +4227,7 @@
"FER": "Ferro",
"FERC": "FairERC20",
"FERMA": "Ferma",
+ "FERT": "Chikn Fert",
"FERZAN": "Ferzan",
"FESS": "Fesschain",
"FET": "Fetch.AI",
@@ -3470,39 +4244,55 @@
"FFN": "Fairy Forest",
"FFUEL": "getFIFO",
"FFYI": "Fiscus FYI",
+ "FGC": "FantasyGold",
"FGD": "Freedom God DAO",
+ "FGM": "Feels Good Man",
+ "FGT": "Flozo Game Token",
"FGZ": "Free Game Zone",
"FHM": "FantOHM",
"FI": "Fideum",
+ "FIA": "FIA Protocol",
"FIBO": "FibSWAP DEx",
"FIBRE": "FIBRE",
"FIC": "Filecash",
"FID": "Fidira",
"FIDA": "Bonfida",
"FIDLE": "Fidlecoin",
+ "FIDO": "FIDO",
"FIELD": "Fieldcoin",
+ "FIERO": "Fieres",
+ "FIF": "flokiwifhat",
"FIFTY": "FIFTYONEFIFTY",
"FIG": "FlowCom",
+ "FIGHT": "Crypto Fight Club",
"FIH": "Fidelity House",
"FIII": "Fiii",
"FIL": "FileCoin",
"FILDA": "Filda",
+ "FILES": "Solfiles",
"FILL": "Fillit",
"FILM": "Filmpass",
"FILST": "Filecoin Standard Hashrate Token",
"FIN": "DeFiner",
"FINA": "Defina Finance",
+ "FINALE": "Ben's Finale",
"FINC": "Finceptor",
"FIND": "FindCoin",
"FINE": "Refinable",
+ "FINGER": "Finger Blast",
+ "FINK": "FINK",
+ "FINN": "Huckleberry",
"FINOM": "Finom FIN Token",
+ "FINS": "AutoShark DEX",
"FINU": "Formula Inu",
"FIO": "FIO Protocol",
- "FIRE": "FireCoin",
+ "FIRA": "Defira",
+ "FIRECOIN": "FireCoin",
"FIRO": "Firo",
"FIRSTHARE": "FirstHare",
"FIRU": "Firulais Finance",
"FIS": "Stafi",
+ "FISH": "Polycat Finance",
"FIST": "FistBump",
"FIT": "Financial Investment Token",
"FITC": "Fitcoin",
@@ -3513,9 +4303,11 @@
"FIX00": "FIX00",
"FJB": "Freedom. Jobs. Business.",
"FJC": "FujiCoin",
+ "FJO": "Fjord Foundry",
"FJT": "Fuji FJT",
"FK": "FK Coin",
"FKGARY": "Fuck Gary Gensler",
+ "FKPEPE": "Fuck Pepe",
"FKX": "FortKnoxster",
"FL": "Freeliquid",
"FLAG": "Flag Network",
@@ -3528,12 +4320,15 @@
"FLD": "FluidAI",
"FLDC": "Folding Coin",
"FLDT": "FairyLand",
+ "FLEPE": "Floki VS Pepe",
"FLETA": "FLETA",
"FLEX": "FLEX Coin",
"FLG": "Folgory Coin",
"FLIBERO": "Fantom Libero Financial",
"FLIC": "Skaflic",
+ "FLIGHT": "FLIGHTCLUPCOIN",
"FLIK": "FLiK",
+ "FLINU": "FLOKI INU",
"FLIP": "Chainflip",
"FLIX": "OmniFlix Network",
"FLIXX": "Flixxo",
@@ -3541,26 +4336,42 @@
"FLLW": "Follow Coin",
"FLM": "Flamingo",
"FLMC": "FOLM coin",
+ "FLN": "Falcon",
"FLO": "Flo",
"FLOAT": "Float Protocol",
+ "FLOKA": "FLOKA",
"FLOKI": "Floki Inu",
+ "FLOKIBURN": "FlokiBurn",
+ "FLOKICASH": "Floki Cash",
+ "FLOKIM": "Flokimooni",
+ "FLOKIMOON": "FLOKIMOON",
"FLOKINY": "Floki New Year",
"FLOKIPEPE": "FlokiPepe",
+ "FLOKITA": "FLOKITA",
+ "FLOKIX": "FLOKI X",
+ "FLOOF": "FLOOF",
"FLOOR": "FloorDAO",
+ "FLOP": "Big Floppa",
+ "FLORK": "FLORK BNB",
"FLORKY": "Florky",
"FLOSHIDO": "FLOSHIDO INU",
"FLOT": "FireLotto",
+ "FLOVI": "Flovi inu",
"FLOVM": "FLOV MARKET",
"FLOW": "Flow",
"FLOWP": "Flow Protocol",
"FLOYX": "Floyx",
"FLP": "Gameflip",
"FLR": "Flare",
+ "FLRBRG": "Floor Cheese Burger",
"FLRS": "Flourish Coin",
"FLS": "Flits",
- "FLT": "FlutterCoin",
+ "FLT": "Fluence",
+ "FLUFFYS": "Fluffys",
"FLUID": "Fluid",
"FLURRY": "Flurry Finance",
+ "FLUT": "Flute",
+ "FLUTTERCOIN": "FlutterCoin",
"FLUX": "Flux",
"FLUXB": "Fluxbot",
"FLUXT": "Flux Token",
@@ -3570,6 +4381,8 @@
"FLY": "Franklin",
"FLYCOIN": "FlyCoin",
"FLZ": "Fellaz",
+ "FM": "Flowmatic",
+ "FMB": "FREEMOON BINANCE",
"FMC": "Fimarkcoin",
"FME": "FME",
"FMEX": "FMex",
@@ -3591,17 +4404,22 @@
"FNSA": "FINSCHIA",
"FNTB": "FinTab",
"FNX": "FinNexus",
+ "FNZ": "Fanzee",
"FO": "FIBOS",
+ "FOA": "Fragments of arker",
"FOAM": "Foam",
"FOC": "TheForce Trade",
"FOCV": "FOCV",
"FODL": "Fodl Finance",
"FOF": "Future Of Fintech",
+ "FOFAR": "Fofar",
"FOFO": "FOFO Token",
"FOGE": "Fat Doge",
"FOIN": "Foin",
"FOL": "Folder Protocol",
"FOLD": "Manifold Finance",
+ "FOLO": "Alpha Impact",
+ "FOMO": "Aavegotchi FOMO",
"FON": "INOFI",
"FONE": "Fone",
"FONS": "FONSmartChain",
@@ -3626,6 +4444,7 @@
"FOREXCOIN": "FOREXCOIN",
"FORK": "Gastro Advisor Token",
"FORM": "Formation FI",
+ "FORS": "Forus",
"FORT": "Forta",
"FORTH": "Ampleforth Governance Token",
"FORTHB": "ForthBox",
@@ -3634,22 +4453,31 @@
"FORWARD": "Forward Protocol",
"FOTA": "Fight Of The Ages",
"FOTO": "Unique Photo",
+ "FOTTIE": "Fottie",
+ "FOUND": "ccFound",
"FOUNTAIN": "Fountain",
"FOUR": "4THPILLAR TECHNOLOGIES",
"FOX": "ShapeShift FOX Token",
"FOXAI": "FOXAI",
"FOXD": "Foxdcoin",
+ "FOXE": "Foxe",
"FOXF": "Fox Finance",
+ "FOXGIRL": "FoxGirl",
"FOXT": "Fox Trading",
"FOXV2": "FoxFinanceV2",
+ "FOXY": "Famous Fox Federation",
+ "FP": "Fren Pet",
+ "FPAD": "FantomPAD",
"FPC": "Futurepia",
"FPFT": "Peruvian National Football Team Fan Token",
+ "FPI": "Frax Price Index",
"FPIS": "Frax Price Index Share",
"FR": "Freedom Reserve",
"FRA": "Findora",
"FRAC": "FractalCoin",
"FRAX": "Frax",
"FRAZ": "FrazCoin",
+ "FRBK": " FreeBnk",
"FRC": "FireRoosterCoin",
"FRD": "Farad",
"FRDX": "Frodo Tech",
@@ -3659,12 +4487,17 @@
"FRED": "FREDEnergy",
"FREE": "FREE coin",
"FREED": "FreedomCoin",
+ "FREELA": "DecentralFree",
"FREEROSS": "FreeRossDAO",
"FREL": "Freela",
"FREN": "FREN",
"FRENS": "Farmer Friends",
+ "FRF": "France REV Finance",
+ "FRGST": "Froggies Token",
"FRGX": "FRGX",
"FRIC": "Frictionless",
+ "FRIEND": "Friend.tech",
+ "FRIES": "Soltato FRIES",
"FRIN": "Fringe Finance",
"FRK": "Franko",
"FRKT": "FRAKT Token",
@@ -3675,24 +4508,32 @@
"FROG": "FrogSwap",
"FROGCEO": "Frog Ceo",
"FROGE": "Froge Finance",
+ "FROGEX": "FrogeX",
+ "FROGGY": "Froggy",
+ "FROGO": "Frogo",
"FRONK": "Fronk",
"FRONT": "Frontier",
"FROYO": "Froyo Games",
+ "FROZE": "FrozenAi",
"FRP": "Fame Reward Plus",
"FRR": "Frontrow",
"FRSP": "Forkspot",
"FRST": "FirstCoin",
"FRTC": "FART COIN",
+ "FRTN": "EbisusBay Fortune",
"FRTS": "Fruits",
"FRV": "Fitrova",
"FRWC": "Frankywillcoin",
"FRXETH": "Frax Ether",
"FRZ": "Frozy Inu",
"FRZSS": "Frz Solar System",
+ "FRZSSCOIN": "FRZ Solar System Coin",
"FS": "FantomStarter",
"FSBT": "Forty Seven Bank",
"FSC": "FriendshipCoin",
+ "FSCC": "Fisco Coin",
"FSHN": "Fashion Coin",
+ "FSM": "Floki SafeMoon",
"FSN": "Fusion",
"FST": "Futureswap",
"FSTC": "FastCoin",
@@ -3701,9 +4542,12 @@
"FTB": "Fit&Beat",
"FTC": "FeatherCoin",
"FTG": "fantomGO",
+ "FTH": "Fintyhub Token",
+ "FTHM": "Fathom Protocol",
"FTI": "FansTime",
"FTK": "FToken",
"FTM": "Fantom",
+ "FTMO": "Fantom Oasis",
"FTN": "Fasttoken",
"FTO": "FuturoCoin",
"FTP": "FuturePoints",
@@ -3712,9 +4556,13 @@
"FTRC": "FutureCoin",
"FTS": "Fortress Lending",
"FTT": "FTX Token",
+ "FTTOKEN": "Finance Token",
"FTUM": "Fatum",
+ "FTVT": "FashionTV Token",
"FTW": "FutureWorks",
"FTX": "FintruX",
+ "FTXT": "FUTURAX",
+ "FUBAO": "FUBAO",
"FUCK": "Fuck Token",
"FUD": "FUD.finance",
"FUEL": "Jetfuel Finance",
@@ -3724,29 +4572,36 @@
"FUL": "Fulcrom Finance",
"FUMO": "Alien Milady Fumo",
"FUN": "FUN Token",
+ "FUNASSYI": "Funassyi",
"FUNC": "FunCoin",
"FUNCH": "FUNCH",
"FUND": "Unification",
"FUNDC": "FUNDChains",
"FUNDP": "Fund Platform",
"FUNDREQUEST": "FundRequest",
+ "FUNDX": "Funder One Capital",
"FUNDYOUR": "FundYourselfNow",
"FUNDZ": "FundFantasy",
+ "FUNGI": "Fungi",
"FUNK": "Cypherfunks Coin",
"FUR": "Furio",
"FURU": "Furucombo",
"FURY": "Engines of Fury",
"FURYX": "Metafury",
"FUS": "Fus",
+ "FUSD": "Fantom USD",
+ "FUSDC": "Fluidity",
"FUSE": "Fuse Network Token",
"FUSION": "FusionBot",
"FUSO": "Fusotao",
"FUTC": "FutCoin",
"FUTURE": "FutureCoin",
+ "FUTUREAI": "Future AI",
"FUZE": "FUZE Token",
"FUZN": "Fuzion",
"FUZZ": "Fuzzballs",
"FVT": "Finance Vote",
+ "FWATCH": "Foliowatch",
"FWB": "Friends With Benefits Pro",
"FWC": "Qatar 2022",
"FWT": "Freeway Token",
@@ -3759,6 +4614,7 @@
"FXI": "FX1 Sports",
"FXP": "FXPay",
"FXS": "Frax Share",
+ "FXST": "FX Stock Token",
"FXT": "FuzeX",
"FXY": "Floxypay",
"FYD": "FYDcoin",
@@ -3768,12 +4624,14 @@
"FYZNFT": "Fyooz NFT",
"G": "GRN Grid",
"G1X": "GoldFinX",
+ "G3": "GAM3S.GG",
"G50": "G50",
"G999": "G999",
"GAC": "Green Art Coin",
"GAD": "Green App Development",
"GAFA": "Gafa",
"GAFI": "GameFi",
+ "GAGA": "Gaga",
"GAI": "GraphGrail AI",
"GAIA": "Gaia Everworld",
"GAIAPLATFORM": "GAIA Platform",
@@ -3793,12 +4651,16 @@
"GALT": "Galtcoin",
"GAM": "Gambit coin",
"GAMB": "GAMB",
+ "GAMBIT": "Gambit",
+ "GAMBL": "Metagamble",
"GAME": "Gamestarter",
"GAMEC": "Game",
"GAMECRED": "GameCredits",
"GAMEFI": "GameFi Token",
+ "GAMEFORK": "GameFork",
"GAMEIN": "Game Infinity",
"GAMER": "GameStation",
+ "GAMERFI": "GamerFI",
"GAMESTARS": "Game Stars",
"GAMEX": "GameX",
"GAMI": "GAMI World",
@@ -3810,12 +4672,14 @@
"GAP": "Gaps Chain",
"GAPC": "Gapcoin",
"GARD": "Hashgard",
+ "GARFIELD": "Garfield Cat",
"GARI": "Gari Network",
"GARK": "Game Ark",
"GART": "Griffin Art",
"GARTS": "Glink Arts Share",
"GARU": "Garuda Coin",
"GARUDA": "GarudaSwap",
+ "GARWIF": "Garfield Wif Hat",
"GARY": "Gary",
"GAS": "Gas",
"GASDAO": "Gas DAO",
@@ -3827,10 +4691,13 @@
"GATEWAY": "Gateway Protocol",
"GATSBY": "Gatsby Inu",
"GAU": "Gamer Arena",
+ "GAUSS": "Gauss0x",
"GAYPEPE": "Gay Pepe",
+ "GAYSLER": "Gaysler",
"GAZE": "GazeTV",
"GB": "GoldBlocks",
"GBA": "Geeba",
+ "GBC": "Green Blue Coin",
"GBCR": "Gold BCR",
"GBD": "Great Bounty Dealer",
"GBE": "Godbex",
@@ -3841,7 +4708,9 @@
"GBL": "Global Token",
"GBO": "Gabro.io",
"GBOT": "GBOT",
+ "GBOY": "GameBoy",
"GBPT": "poundtoken",
+ "GBPU": "Upper Pound",
"GBRC": "GBR Coin",
"GBT": "GameBetCoin",
"GBTC": "GigTricks",
@@ -3851,10 +4720,14 @@
"GBYTE": "Obyte",
"GC": "Gric Coin",
"GCAKE": "Pancake Games",
+ "GCAT": "Giga Cat on Base",
"GCC": "GuccioneCoin",
+ "GCME": "GoCryptoMe",
"GCN": "gCn Coin",
"GCOIN": "Galaxy Fight Club",
+ "GCOTI": "COTI Governance Token",
"GCR": "Global Currency Reserve",
+ "GCRE": "Gluwa Creditcoin Vesting Token",
"GCW": "GCWine",
"GDAO": "Governor DAO",
"GDC": "Global Digital Content",
@@ -3872,10 +4745,11 @@
"GDX": "VanEck Vectors Gold Miners Etf",
"GE": "GEchain",
"GEA": "Goldea",
- "GEAR": "MetaGear",
+ "GEAR": "Gearbox Protocol",
"GEC": "Geco.one",
"GECKO": "Gecko Coin",
"GEEQ": "Geeq",
+ "GEGE": "Gege",
"GEIST": "Geist Finance",
"GEKKO": "Gekko HQ",
"GELATO": "Gelato",
@@ -3890,13 +4764,17 @@
"GEN": "DAOstack",
"GENE": "Genopets",
"GENESIS": "Genesis Worlds",
+ "GENI": "Genius",
"GENIE": "The Genie",
"GENIX": "Genix",
+ "GENO": "GenomeFi",
+ "GENOME": "GenomesDao",
"GENS": "Genshiro",
"GENSLR": "Good Gensler",
"GENSTAKE": "Genstake",
"GENX": "Genx Token",
"GENXNET": "Genesis Network",
+ "GENZ": "GENZ Token",
"GEO": "GeoCoin",
"GEOD": "GEODNET",
"GEODB": "GeoDB",
@@ -3906,6 +4784,7 @@
"GEP": "Gaia",
"GER": "GermanCoin",
"GERA": "Gera Coin",
+ "GERMANY": "Germany Rabbit Token",
"GERO": "GeroWallet",
"GES": "Galaxy eSolutions",
"GESE": "Gese",
@@ -3914,6 +4793,7 @@
"GETH": "Guarded Ether",
"GETX": "Guaranteed Ethurance Token Extra",
"GEX": "Gexan",
+ "GEZY": "EZZY GAME GEZY",
"GF": "GuildFi",
"GFAL": "Games for a Living",
"GFARM2": "Gains V2",
@@ -3922,21 +4802,27 @@
"GFI": "Goldfinch",
"GFLY": "BattleFly",
"GFN": "Graphene",
+ "GFOX": "Galaxy Fox",
"GFT": "Gifto",
"GFUN": "GoldFund",
"GFX": "GamyFi Token",
"GFY": "go fu*k yourself",
"GG": "Reboot",
+ "GGAVAX": "GoGoPool AVAX",
"GGC": "Global Game Coin",
+ "GGCM": "Gold Guaranteed Coin",
"GGG": "Good Games Guild",
"GGH": "Green Grass Hopper",
"GGM": "Monster Galaxy",
+ "GGMT": "GG MetaGame",
"GGOLD": "GramGold Coin",
"GGP": "GGPro",
"GGPT": "Generative GPT",
"GGR": "GGRocket",
"GGS": "Gilgam",
+ "GGT": "Goat Gang",
"GGTK": "GGDApp",
+ "GGTKN": "GG Token",
"GHA": "Ghast",
"GHC": "Galaxy Heroes Coin",
"GHCOLD": "Galaxy Heroes Coin",
@@ -3948,11 +4834,14 @@
"GHOSTM": "GhostMarket",
"GHOUL": "Ghoul Coin",
"GHST": "Aavegotchi",
+ "GHSY": "Ghosty Cash",
"GHT": "Global Human Trust",
"GHUB": "GemHUB",
"GHX": "GamerCoin",
+ "GIAC": "Gorilla In A Coupe",
"GIB": "Bible Coin",
"GIC": "Giant",
+ "GICT": "GICTrade",
"GIF": "Gift Token",
"GIFT": "GiftNet",
"GIG": "GigaCoin",
@@ -3961,15 +4850,22 @@
"GIM": "Gimli",
"GIMMER": "Gimmer",
"GIN": "GINcoin",
+ "GINGER": "GINGER",
+ "GINOA": "Ginoa",
"GINUX": "Green Shiba Inu",
+ "GINZA": "GINZA NETWORK",
"GIO": "Graviocoin",
"GIOT": "Giotto Coin",
+ "GIOVE": "GIOVE",
+ "GIV": "Giveth",
"GIVE": "GiveCoin",
"GIZ": "GIZMOcoin",
"GJC": "Global Jobcoin",
+ "GKF": "Galatic Kitty Fighters",
"GKI": "GKi",
"GLA": "Gladius",
"GLAX": "BLOCK GALAXY NETWORK",
+ "GLB": "Golden Ball",
"GLC": "GoldCoin",
"GLCH": "Glitch",
"GLD": "Goldario",
@@ -3977,15 +4873,20 @@
"GLDS": "Gdigit",
"GLDX": "Goldex",
"GLDY": "Buzzshow",
+ "GLE": "Green Life Energy",
"GLEEC": "Gleec Coin",
+ "GLF": "Galaxy Finance",
"GLFT": "Global Fan Token",
+ "GLI": "GLI TOKEN",
"GLIDE": "Glide Finance",
+ "GLINK": "Gemlink",
"GLINT": "BeamSwap",
"GLM": "Golem Network Token",
"GLMR": "Moonbeam",
"GLN": "Galion Token",
"GLOBAL": "GlobalCoin",
"GLOBE": "Global",
+ "GLORY": "SEKAI GLORY",
"GLOS": "GLOS",
"GLOWSHA": "GlowShares",
"GLQ": "GraphLinq Protocol",
@@ -3996,6 +4897,7 @@
"GLYPH": "GlyphCoin",
"GM": "GM",
"GMA": "Goldchip Mining Asset",
+ "GMAC": "Gemach",
"GMAT": "GoWithMi",
"GMB": "GMB",
"GMBL": "GMBL Computer",
@@ -4004,13 +4906,17 @@
"GMCOIN": "GMCoin",
"GMEE": "GAMEE",
"GMEX": "Game Coin",
+ "GMFAM": "GMFAM",
+ "GMFI": "Golden Magfi",
"GMI": "GamiFi",
"GML": "GameLeagueCoin",
"GMM": "Gamium",
"GMMT": "Green Mining Movement Token",
"GMNG": "Global Gaming",
+ "GMNT": "Gmining",
"GMPD": "GamesPad",
"GMR": "GAMER",
+ "GMRX": "Gaimin",
"GMS": "Gemstra",
"GMT": "STEPN",
"GMTO": "Game Meteor Coin",
@@ -4020,6 +4926,9 @@
"GN": "GN",
"GNBT": "Genebank Token",
"GNC": "Greencoin",
+ "GND": "GND Protoco",
+ "GNFT": "GNFT",
+ "GNG": "GreenGold",
"GNJ": "GanjaCoin V2",
"GNNX": "Gennix",
"GNO": "Gnosis",
@@ -4028,6 +4937,7 @@
"GNS": "Gains Network",
"GNT": "GreenTrust",
"GNTO": "GoldeNugget Token",
+ "GNUS": "GENIUS TOKEN",
"GNX": "Genaro Network",
"GNY": "GNY",
"GO": "GoChain",
@@ -4050,29 +4960,38 @@
"GOG": "Guild of Guardians",
"GOGO": "GOGO Finance",
"GOGU": "GOGU Coin",
+ "GOIN": "GOinfluencer",
"GOJOCOIN": "Gojo Coin",
"GOKU": "Goku",
"GOL": "GogolCoin",
"GOLC": "GOLCOIN",
"GOLD": "CyberDragon Gold",
+ "GOLDCAT": "GOLD CAT",
"GOLDEN": "Golden Inu",
"GOLDENG": "Golden Goose",
"GOLDMIN": "GoldMiner",
"GOLDPIECES": "GoldPieces",
"GOLDX": "eToro Gold",
+ "GOLDY": "DeFi Land Gold",
"GOLF": "GolfCoin",
"GOLOS": "Golos",
"GOLOSBLOCKCHAIN": "Golos Blockchain",
"GOM": "Gomics",
"GOM2": "GoMoney2",
"GOMA": "GOMA Finance",
+ "GOMD": "GOMDori",
"GOMT": "GoMeat",
+ "GONE": "GONE",
"GOO": "Gooeys",
"GOOCH": "Gooch",
"GOOD": "Goodomy",
+ "GOOGLE": "Deepmind Ai",
+ "GOOGLY": "Googly Cat",
"GOON": "Goonies",
"GOPX": "GOPX Token",
+ "GORA": "Gora",
"GOREC": "GoRecruit",
+ "GORGONZOLA": "Heroes 3 Foundation",
"GORILLA": "Gorilla",
"GORILLAD": "Gorilla Diamond",
"GORILLAINU": "Gorilla Inu",
@@ -4090,19 +5009,28 @@
"GOYOO": "GoYoo",
"GOZ": "Göztepe S.K. Fan Token",
"GP": "Wizards And Dragons",
+ "GPAWS": "Golden Paws",
"GPBP": "Genius Playboy Billionaire Philanthropist",
+ "GPCX": "Good Person Coin",
"GPKR": "Gold Poker",
"GPL": "Gold Pressed Latinum",
+ "GPLX": "Gplx",
"GPN": "Gamepass Network",
+ "GPO": "GoldPesa Option",
"GPPT": "Pluto Project Coin",
"GPS": "Triffic",
"GPTG": "GPT Guru",
- "GPU": "GPU Coin",
+ "GPTPLUS": "GPTPlus",
+ "GPTV": "GPTVerse",
+ "GPUCOIN": "GPU Coin",
+ "GPUINU": "GPU Inu",
"GPX": "GPEX",
"GQ": "Galactic Quadrant",
"GR": "GROM",
"GRACY": "Gracy",
+ "GRAI": "Gravita Protocol",
"GRAIL": "Camelot Token",
+ "GRAIN": "Granary",
"GRANDCOIN": "GrandCoin",
"GRAPE": "GrapeCoin",
"GRAV": "Graviton",
@@ -4116,6 +5044,7 @@
"GREARN": "GrEarn",
"GREEN": "GreenX",
"GREENT": "Greentoken",
+ "GREG": "greg",
"GRELF": "GRELF",
"GREXIT": "GrexitCoin",
"GREY": "Grey Token",
@@ -4124,7 +5053,9 @@
"GRID": "Grid+",
"GRIDCOIN": "GridCoin",
"GRIDZ": "GridZone.io",
+ "GRIM": "GRIMREAPER",
"GRIMACE": "Grimace",
+ "GRIMEVO": "Grim EVO",
"GRIMEX": "SpaceGrime",
"GRIN": "Grin",
"GRL": "Greelance",
@@ -4135,15 +5066,22 @@
"GRND": "SuperWalk",
"GRO": "Gro DAO Token",
"GROK": "Grok",
+ "GROKBANK": "Grok Bank",
+ "GROKBOY": "GrokBoy",
+ "GROKCAT": "Grok Cat",
"GROKCEO": "GROK CEO",
+ "GROKCOIN": "Grok Coin",
"GROKFATHER": "Grok Father",
+ "GROKGIRL": "Grok Girl",
"GROKGROW": "GrokGrow",
"GROKHEROES": "GROK heroes",
+ "GROKINU": "Grok Inu",
"GROKKING": "GrokKing",
"GROKKY": "GroKKy",
"GROKMOON": "Grok Moon",
"GROKOLAUS": "GROKolaus",
"GROKQUEEN": "Grok Queen",
+ "GROKSORAX": "GROKSORAX",
"GROKX": "GROKX",
"GROKXAI": "Grok X Ai",
"GRON": "Gron Digital",
@@ -4162,10 +5100,12 @@
"GRWI": "Growers International",
"GRX": "Gold Reward Token",
"GS": "Genesis Shards",
+ "GS1": "NFTGamingStars",
"GSC": "Global Social Chain",
"GSE": "GSENetwork",
"GSHIBA": "Gambler Shiba",
"GSI": "Globex SCI",
+ "GSKY": "SKY FRONTIER",
"GSM": "GSM Coin",
"GSPI": "GSPI",
"GSR": "GeyserCoin",
@@ -4179,12 +5119,16 @@
"GSWIFT": "GameSwift",
"GSX": "Gold Secured Currency",
"GSY": "GenesysCoin",
+ "GSYS": "Genesys",
"GT": "Gatechain Token",
"GTA6": "GTA VI",
"GTAI": "GT Protocol",
+ "GTAVI": "GTAVI",
+ "GTBOT": "Gaming-T-Bot",
"GTC": "Gitcoin",
"GTCOIN": "Game Tree",
"GTE": "GreenTek",
+ "GTF": "GLOBALTRUSTFUND TOKEN",
"GTFO": "DumpBuster",
"GTH": "Gath3r",
"GTIB": "Global Trust Coin",
@@ -4193,23 +5137,34 @@
"GTON": "GTON Capital",
"GTR": "Gturbo",
"GTSE": "Global Tourism Sharing Ecology",
+ "GTTM": "Going To The Moon",
"GTX": "GALLACTIC",
"GUAC": "Guacamole",
+ "GUAP": "Guapcoin",
"GUAR": "Guarium",
+ "GUARD": "Guardian",
+ "GUARDAI": "GuardAI",
"GUC": "Green Universe Coin",
"GUCCI": "GUCCI",
"GUE": "GuerillaCoin",
"GUESS": "Peerguess",
+ "GUI": "Gui Inu",
"GUILD": "BlockchainSpace",
+ "GUISE": "GUISE",
"GULF": "GulfCoin",
"GUM": "Gourmet Galaxy",
+ "GUMMIES": "GUMMIES",
+ "GUMMY": "GUMMY",
"GUN": "GunCoin",
"GUNS": "GeoFunders",
"GUP": "Guppy",
"GUSD": "Gemini Dollar",
"GUSDT": "Global Utility Smart Digital Token",
"GUT": "Genesis Universe",
+ "GUUFY": "Guufy",
+ "GVC": "Global Virtual Coin",
"GVE": "Globalvillage Ecosystem",
+ "GVL": "Greever",
"GVR": "Grove [OLD]",
"GVT": "Genesis Vision",
"GW": "Gyrowin",
@@ -4219,12 +5174,14 @@
"GX": "GameX",
"GXA": "Galaxia",
"GXC": "GXChain",
+ "GXE": "XENO Governance",
"GXT": "Gem Exchange And Trading",
"GYEN": "GYEN",
"GYM": "GYM Token",
"GYMNET": "Gym Network",
"GYMREW": "Gym Rewards",
"GYRO": "Gyro",
+ "GYSR": "GYSR",
"GZB": "Gigzi",
"GZE": "GazeCoin",
"GZIL": "governance ZIL",
@@ -4237,25 +5194,32 @@
"H2ON": "H2O Securities",
"H3O": "Hydrominer",
"H4TOKEN": "Hold Ignore Fud",
+ "HABIBI": "The Habibiz",
"HAC": "Hackspace Capital",
"HACHI": "Hachi",
"HACHIKO": "Hachiko Inu Token",
+ "HAHA": "Hasaki",
"HAI": "Hacken Token",
"HAIR": " HairDAO",
"HAKA": "TribeOne",
"HAKKA": "Hakka Finance",
+ "HAKU": "HakuSwap",
"HAL": "Halcyon",
"HALF": "0.5X Long Bitcoin Token",
"HALFSHIT": "0.5X Long Shitcoin Index Token",
"HALLO": "Halloween Coin",
+ "HALLOWEEN": "HALLOWEEN",
"HALO": "Halo Coin",
"HALOPLATFORM": "Halo Platform",
"HAM": "Hamster",
+ "HAMI": "Hamachi Finance",
"HAMS": "HamsterCoin",
"HAMSTR": "Hamster Coin",
+ "HAN": "HanChain",
"HANA": "Hanacoin",
"HAND": "ShowHand",
"HANDY": "Handy",
+ "HANK": "Hank",
"HANU": "Hanu Yokia",
"HAO": "HistoryDAO",
"HAPI": "HAPI",
@@ -4263,26 +5227,35 @@
"HARAMBE": "Harambe",
"HARD": "Kava Lend",
"HARE": "Hare Token",
+ "HAREPLUS": "Hare Plus",
+ "HAROLD": "Harold",
"HARRYP": "HarryPotterObamaSonic10Inu (ERC20)",
"HART": "HARA",
"HASH": "Provenance Blockchain",
+ "HASHAI": "HashAI",
"HASHT": "HASH Token",
"HASUI": "Haedal",
"HAT": "Hawala.Exchange",
"HATAY": "Hatayspor Token",
+ "HATCHY": "Hatchyverse",
"HATI": "Hati",
"HAUS": "DAOhaus",
"HAVOC": "Havoc",
+ "HAVY": "Havy",
"HAWK": "Hawksight",
+ "HAY": "Destablecoin HAY",
"HAYYA": "GO HAYYA",
"HAZ": "Hazza",
"HAZE": "HazeCoin",
"HB": "HeartBout",
"HBAR": "Hedera Hashgraph",
+ "HBARX": "HBARX",
"HBB": "Hubble",
"HBC": "HBTC Captain Token",
"HBD": "Hive Dollar",
+ "HBDC": "Happy Birthday Coin",
"HBE": "healthbank",
+ "HBIT": "HashBit",
"HBN": "HoboNickels",
"HBO": "Hash Bridge Oracle",
"HBOT": "Hummingbot",
@@ -4310,17 +5283,21 @@
"HEAT": "Heat Ledger",
"HEAVEN": "Heaven Token",
"HEC": "Hector Finance",
+ "HECT": "Hectic Turkey",
"HECTA": "Hectagon",
"HEDG": "HedgeTrade",
"HEDGE": "Hedgecoin",
"HEEL": "HeelCoin",
"HEFI": "HeFi",
+ "HEGE": "Hege",
+ "HEGG": "Hummingbird Egg",
"HEGIC": "Hegic",
"HELIOS": "Mission Helios",
"HELL": "HELL COIN",
"HELLO": "HELLO",
"HELMET": "Helmet Insure",
"HELPS": "HelpSeed",
+ "HEMAN": "HE-MAN",
"HEMULE": "Hemule",
"HEP": "Health Potion",
"HER": "Hero Node",
@@ -4341,6 +5318,7 @@
"HFIL": "Huobi Fil",
"HFT": "Hashflow",
"HGET": "Hedget",
+ "HGHG": "HUGHUG Coin",
"HGO": "HireGo",
"HGOLD": "HollyGold",
"HGPT": "HyperGPT",
@@ -4359,8 +5337,10 @@
"HICLONEX": "hiCLONEX",
"HICOOLCATS": "hiCOOLCATS",
"HID": "Hypersign Identity",
+ "HIDE": "Hide Coin",
"HIDOODLES": "hiDOODLES",
"HIDU": "H-Education World",
+ "HIENS3": "hiENS3",
"HIENS4": "hiENS4",
"HIFI": "Hifi Finance",
"HIFLUF": "hiFLUF",
@@ -4368,17 +5348,22 @@
"HIGAZERS": "hiGAZERS",
"HIGH": "Highstreet",
"HIH": "HiHealth",
+ "HIKARI": "Hikari Protocol",
"HILL": "President Clinton",
+ "HIM": "Human Intelligence Machine",
"HIMAYC": "hiMAYC",
"HIME": "Phantom of the Kill",
"HIMEEBITS": "hiMEEBITS",
"HIMFERS": "hiMFERS",
+ "HIMO": "Himo World",
"HIMOONBIRDS": "hiMOONBIRDS",
"HINA": "Hina Inu",
"HINT": "Hintchain",
"HINU": "HajiIni",
+ "HIOD": "hiOD",
"HIODBS": "hiODBS",
"HIPENGUINS": "hiPENGUINS",
+ "HIPP": "El Hippo",
"HIPUNKS": "hiPUNKS",
"HIRE": "HireMatch",
"HIRENGA": "hiRENGA",
@@ -4412,8 +5397,11 @@
"HLX": "Helex",
"HMC": "Hi Mutual Society",
"HMD": "Homelend",
+ "HMKR": "Hitmakr",
+ "HMM": "HMM",
"HMN": "Harvest Masternode Coin",
"HMND": "Humanode",
+ "HMNG": "HummingBirdFinance",
"HMP": "HempCoin",
"HMQ": "Humaniq",
"HMR": "Homeros",
@@ -4429,29 +5417,41 @@
"HNST": "Honest",
"HNT": "Helium",
"HNTR": "Hunter",
+ "HNX": "HeartX Utility Token",
"HNY": "Honey",
"HNZO": "Hanzo Inu",
"HO": "HALO network",
"HOA": "Hex Orange Address",
+ "HOBA": "Honey Badger",
"HOBBES": "Hobbes",
"HOBO": "HOBO THE BEAR",
+ "HOCAI": "Heroes of Crypto AI",
"HOD": "HoDooi.com",
"HODL": "HOdlcoin",
"HOGE": "Hoge Finance",
+ "HOHOHO": "Santa Floki v2.0",
+ "HOICHI": "Hoichi",
"HOKA": "Hokkaido Inu",
"HOKK": "Hokkaidu Inu",
+ "HOL": "Hololoot",
"HOLA": "Hola Token",
"HOLD": "HOLD",
+ "HOLDEX": "Holdex Finance",
"HOLY": "Holy Trinity",
+ "HOM": "Homeety",
"HOME": "OtterHome",
+ "HOMER": "Homer Simpson",
"HOMI": "HOMIHELP",
+ "HOMIECOIN": "Homie Wars",
"HOMMIES": "HOMMIES",
"HON": "SoulSociety",
"HONEY": "Hivemapper",
"HONEYCOIN": "Honey",
"HONK": "Honk",
"HONOR": "HonorLand",
+ "HOOF": "Metaderby Hoof",
"HOOK": "Hooked Protocol",
+ "HOOP": "Chibi Dinos",
"HOP": "Hop Protocol",
"HOPPY": "Hoppy",
"HOPR": "HOPR",
@@ -4461,10 +5461,14 @@
"HOS": "Hotel of Secrets",
"HOSHI": "Dejitaru Hoshi",
"HOSKY": "Hosky",
+ "HOSTAI": "Host AI",
"HOT": "Holo",
"HOTCROSS": "Hot Cross",
+ "HOTKEY": "HotKeySwap",
+ "HOTMOON": "HotMoon Token",
"HOTN": "HotNow",
"HOTT": "HOT Token",
+ "HOUSE": "Klaymore Stakehouse",
"HOW": "HowInu",
"HOWL": "Coyote",
"HP": "HeroPark",
@@ -4477,6 +5481,8 @@
"HPO": "Hippocrat",
"HPT": "Huobi Pool Token",
"HPX": "HUPAYX",
+ "HPY": "Hyper Pay",
+ "HPYPEPE": "Happy Pepe Token",
"HQR": "Hayya Qatar",
"HQT": "HyperQuant",
"HQX": "HOQU",
@@ -4485,6 +5491,7 @@
"HRCC": "HRC Crypto",
"HRD": "Hoard",
"HRDG": "HRDGCOIN",
+ "HRM": "Honorarium",
"HRO": "HEROIC.com",
"HRTS": "YellowHeart Protocol",
"HSC": "HashCoin",
@@ -4501,6 +5508,7 @@
"HTC": "Hitcoin",
"HTD": "HeroesTD",
"HTDF": "Orient Walt",
+ "HTE": "Hepton",
"HTER": "Biogen",
"HTM": "Hatom",
"HTML": "HTML Coin",
@@ -4518,7 +5526,12 @@
"HUDI": "Hudi",
"HUGE": "BigCoin",
"HUGO": "Hugo Inu",
+ "HUH": "HUH Token",
"HUM": "Humanscape",
+ "HUMAI": "Humanoid AI",
+ "HUMP": "Hump",
+ "HUND": "HUND MEME COIN",
+ "HUNDRED": "HUNDRED",
"HUNNY": "Pancake Hunny",
"HUNT": "HUNT",
"HUR": "Hurify",
@@ -4533,10 +5546,13 @@
"HVE": "UHIVE",
"HVE2": "Uhive",
"HVH": "HAVAH",
+ "HVI": "Hungarian Vizsla Inu",
"HVN": "Hiveterminal Token",
"HVNT": "HiveNet Token",
"HVT": "HyperVerse",
"HWC": "HollyWoodCoin",
+ "HWL": "Howl City",
+ "HWT": "Honor World Token",
"HXA": "HXAcoin",
"HXC": "HexanCoin",
"HXD": "Honeyland",
@@ -4547,6 +5563,7 @@
"HYBN": "Hey Bitcoin",
"HYBRID": "Hybrid Bank Cash",
"HYC": "HYCON",
+ "HYCO": "HYPERCOMIC",
"HYDRA": "Hydra",
"HYDRO": "Hydro",
"HYDROMINER": "Hydrominer",
@@ -4556,14 +5573,17 @@
"HYP": "HyperStake",
"HYPE": "Hype",
"HYPER": "HyperChainX",
+ "HYPERAI": "HyperHash AI",
"HYPERCOIN": "HyperCoin",
"HYPERD": "HyperDAO",
"HYPERS": "HyperSpace",
+ "HYPES": "Supreme Finance",
"HYPR": "Hypr Network",
"HYS": "Heiss Shares",
"HYT": "HoryouToken",
"HYVE": "Hyve",
"HZ": "Horizon",
+ "HZD": "HorizonDollar",
"HZM": "HZM Coin",
"HZN": "Horizon Protocol",
"HZT": "HazMatCoin",
@@ -4582,9 +5602,11 @@
"IBFN": "IBF Net",
"IBFR": "iBuffer Token",
"IBG": "iBG Token",
+ "IBIT": "InfinityBit Token",
"IBNB": "iBNB",
"IBP": "Innovation Blockchain Payment",
"IBS": "Irbis Network",
+ "IBTC": "Indigo Protocol - iBTC",
"IC": "Ignition",
"ICA": "Icarus Network",
"ICAP": "ICAP Token",
@@ -4592,12 +5614,14 @@
"ICB": "IceBergCoin",
"ICC": "Insta Cash Coin",
"ICE": "Decentral Games ICE",
+ "ICG": "Invest Club Global",
"ICH": "IdeaChain",
"ICHI": "ICHI",
"ICHN": "i-chain",
"ICHX": "IceChain",
"ICLICK": "Iclick inu",
"ICN": "Iconomi",
+ "ICNX": "Icon.X World",
"ICOB": "Icobid",
"ICOM": "iCommunity",
"ICON": "Iconic",
@@ -4625,12 +5649,14 @@
"IDM": "IDM",
"IDNA": "Idena",
"IDO": "Idexo",
+ "IDOL": "IDOLINU",
"IDORU": "Vip2Fan",
"IDRT": "Rupiah Token",
"IDRX": "IDRX",
"IDT": "InvestDigital",
"IDTT": "Identity",
"IDV": "Idavoll DAO",
+ "IDVV1": "Idavoll DAO v1",
"IDX": "Index Chain",
"IDXM": "IDEX Membership",
"IDXS": "In-Dex Sale",
@@ -4639,6 +5665,7 @@
"IETH": "iEthereum",
"IF": "Impossible Finance",
"IFC": "Infinite Coin",
+ "IFIT": "CALO INDOOR",
"IFLT": "InflationCoin",
"IFT": "InvestFeed",
"IFUM": "Infleum",
@@ -4651,12 +5678,14 @@
"IGNIS": "Ignis",
"IGTT": "IGT",
"IGU": "IguVerse",
+ "IGUP": "IguVerse",
"IHC": "Inflation Hedging Coin",
"IHF": "Invictus Hyperion Fund",
"IHT": "I-House Token",
"IIC": "Intelligent Investment Chain",
"IJC": "IjasCoin",
"IJZ": "iinjaz",
+ "IKI": "ikipay",
"ILA": "Infinite Launch",
"ILC": "ILCOIN",
"ILCT": "ILCoin Token",
@@ -4671,6 +5700,7 @@
"IMGZ": "Imigize",
"IMI": "Influencer",
"IML": "IMMLA",
+ "IMMO": "ImmortalDAO Finance",
"IMO": "IMO",
"IMP": "CoinIMP",
"IMPACT": "Impact",
@@ -4696,10 +5726,13 @@
"INCORGNITO": "Incorgnito",
"INCP": "InceptionCoin",
"IND": "Indorse",
+ "INDAY": "Independence Day",
+ "INDEPENDENCEDAY": "Independence Day",
"INDEX": "Index Cooperative",
"INDI": "IndiGG",
"INDIA": "Indiacoin",
"INDICOIN": "IndiCoin",
+ "INDU": "INDU4.0",
"INDY": "Indigo Protocol",
"INE": "IntelliShare",
"INEDIBLE": "INEDIBLE",
@@ -4724,6 +5757,8 @@
"INNBC": "Innovative Bioresearch Coin",
"INNOU": "Innou",
"INO": "Ino Coin",
+ "INOVAI": "INOVAI",
+ "INP": "Ionic Pocket Token",
"INRT": "INRToken",
"INS": "Insolar (Old Chain)",
"INSANE": "InsaneCoin",
@@ -4739,9 +5774,14 @@
"INSURC": "InsurChain Coin",
"INT": "Internet Node token",
"INTD": "INTDESTCOIN",
+ "INTELLIQUE": "KARASOU",
"INTER": "Inter Milan Fan Token",
+ "INTERN": "Interns",
+ "INTL": "Intelly",
"INTO": "Influ Token",
"INTR": "Interlay",
+ "INTRO": "1INTRO",
+ "INTX": "Intexcoin",
"INU": "INU Token",
"INUINU": "Inu Inu",
"INUKO": "Inuko Finance",
@@ -4768,6 +5808,7 @@
"IONX": "Charged Particles",
"IONZ": "IONZ",
"IOP": "Internet of People",
+ "IOSHIB": "IoTexShiba",
"IOST": "IOS token",
"IOT": "Helium IOT",
"IOTW": "IOTW",
@@ -4791,20 +5832,25 @@
"IPVOLD": "IPVERSE (Klaytn)",
"IPX": "InpulseX",
"IQ": "IQ",
+ "IQ50": "IQ50",
"IQC": "IQ.cash",
"IQN": "IQeon",
"IQQ": "Iqoniq",
"IQT": "IQ Protocol",
"IRA": "Diligence",
"IRC": "IRONCOIN",
+ "IRENA": "Irena Coin Apps",
"IRIS": "IRIS Network",
+ "IRISTOKEN": "Iris Ecosystem",
"IRL": "IrishCoin",
"IRON": "Iron BSC",
"IRT": "Infinity Rocket",
+ "IRYDE": "iRYDE COIN",
"ISA": "Islander",
"ISDT": "ISTARDUST",
"ISG": "ISG",
"ISH": "Interstellar Holdings",
+ "ISHI": "Ishi",
"ISHND": "StrongHands Finance",
"ISIKC": "Isiklar Coin",
"ISKR": "ISKRA Token",
@@ -4812,6 +5858,7 @@
"ISL": "IslaCoin",
"ISLAMI": "ISLAMICOIN",
"ISLM": "Islamic Coin",
+ "ISME": "Root Protocol",
"ISP": "Ispolink",
"ISR": "Insureum",
"ISRG.CUR": "Intuitive Surgical, Inc.",
@@ -4833,16 +5880,20 @@
"ITM": "intimate.io",
"ITOC": "ITOChain",
"ITR": "INTRO",
+ "ITSB": "ITSBLOC",
"ITU": "iTrue",
"ITX": "Intellix",
"ITZ": "Interzone",
"IUNGO": "Iungo",
"IUS": "Iustitia Coin",
+ "IUSD": "Indigo Protocol - iUSD",
"IUX": "GeniuX",
"IVAR": "Ivar Coin",
"IVC": "Investy Coin",
"IVI": "IVIRSE",
+ "IVIP": "iVipCoin",
"IVN": "IVN Security",
+ "IVPAY": "ivendPay",
"IVY": "IvyKoin",
"IVZ": "InvisibleCoin",
"IW": "iWallet",
@@ -4864,16 +5915,23 @@
"J": "JoinCoin",
"J8T": "JET8",
"J9BC": "J9CASINO",
+ "JACK": "Jack Token",
"JACS": "JACS",
"JACY": "JACY",
"JADE": "Jade Protocol",
"JADEC": "Jade Currency",
+ "JAIHO": "Jaiho Crypto",
+ "JAKE": "Jake The Dog",
"JAM": "Tune.Fm",
+ "JAN": "Storm Warfare",
"JANE": "JaneCoin",
"JAR": "Jarvis+",
"JARED": "Jared From Subway",
"JARY": "JeromeAndGary",
"JASMY": "JasmyCoin",
+ "JAWS": "AutoShark",
+ "JAY": "Jaypeggers",
+ "JBOT": "JACKBOT",
"JBS": "JumBucks Coin",
"JBX": "Juicebox",
"JC": "JesusCoin",
@@ -4885,28 +5943,42 @@
"JCT": "Japan Content Token",
"JDC": "JustDatingSite",
"JED": "JEDSTAR",
+ "JEDALS": "Yoda Coin Swap",
+ "JEET": "Jeet",
"JEFE": "JEFE TOKEN",
"JEFF": "Jeff in Space",
"JEJUDOGE": "Jejudoge",
+ "JELLI": "JELLI",
"JELLY": "Jelly eSports",
"JEM": "Jem",
"JEN": "JEN COIN",
+ "JERRY": "Jerry Inu",
"JERRYINU": "JERRYINU",
"JESUS": "Jesus Coin",
"JET": "Jet Protocol",
"JETCOIN": "Jetcoin",
+ "JETTON": "JetTon Game",
+ "JEUR": "Jarvis Synthetic Euro",
"JEW": "Shekel",
"JEWEL": "DeFi Kingdoms",
"JEX": "JEX Token",
"JFI": "JackPool.finance",
"JFIN": "JFIN Coin",
+ "JFIVE": "Jonny Five",
+ "JGLP": "Jones GLP",
"JGN": "Juggernaut",
"JIAOZI": "Jiaozi",
"JIB": "Jibbit",
"JIF": "JiffyCoin",
"JIM": "Jim",
+ "JIND": "JINDO INU",
"JINDOGE": "Jindoge",
"JIO": "JIO Token",
+ "JITOSOL": "Jito Staked SOL",
+ "JIZZ": "JizzRocket",
+ "JIZZLORD": "JizzLord",
+ "JIZZUS": "JIZZUS CHRIST",
+ "JK": "JK Coin",
"JKC": "JunkCoin",
"JKL": "Jackal Protocol",
"JLP": "Jupiter Perps LP",
@@ -4925,19 +5997,26 @@
"JOBS": "JobsCoin",
"JOE": "JOE",
"JOEBIDEN2024 ": "JOEBIDEN2024",
+ "JOEY": "Joey Inu",
+ "JOGECO": "Jogecodog",
+ "JOHM": "Johm lemmon",
"JOINT": "Joint Ventures",
"JOJO": "JOJO",
- "JOK": "JokerCoin",
+ "JOK": "JokInTheBox",
"JOKER": "JOKER",
+ "JOKERCOIN": "JokerCoin",
"JOLT": "Joltify",
"JONES": "Jones DAO",
+ "JOOPS": "JOOPS",
"JOTCHUA": "Perro Dinero",
+ "JOWNES": "Alux Jownes",
"JOY": "Joystream",
"JOYS": "JOYS",
"JOYT": "JoyToken",
"JOYTOKEN": "Joycoin",
"JP": "JP",
"JPAW": "Jpaw Inu",
+ "JPD": "JackpotDoge",
"JPEG": "JPEG'd",
"JPGC": "JPGold Coin",
"JPYC": "JPYC",
@@ -4952,19 +6031,24 @@
"JTC": "Jurat",
"JTO": "Jito",
"JTS": "Jetset",
+ "JTT": "Justus",
"JTX": "Project J",
"JUDGE": "JudgeCoin",
+ "JUGNI": "JUGNI",
"JUI": "Juiice",
+ "JUICE": "Juice Finance",
"JUL": "Joule",
"JULB": "JustLiquidity Binance",
"JULD": "JulSwap",
"JUMBO": "Jumbo Exchange",
"JUMP": "Jumpcoin",
"JUN": "Jun \"M\" Coin",
+ "JUNKIE": "Junkie Cats",
"JUNO": "JUNO",
"JUP": "Jupiter",
"JUPI": "Jupiter",
"JUR": "Jur",
+ "JUSDC": "Jones USDC",
"JUSDT": "TON Bridged USDT",
"JUSTICE": "AssangeDAO",
"JUV": "Juventus Fan Token",
@@ -4975,19 +6059,23 @@
"K21": "K21",
"K2G": "Kasko2go",
"KAAS": "KAASY.AI",
+ "KABOSU": "Kabosu Family",
"KABY": "Kaby Arena",
"KAC": "KACO Finance",
"KACY": "Kassandra",
"KAG": "Silver",
"KAI": "KardiaChain",
+ "KAIJU": "KAIJUNO8",
"KAIKEN": "Kaiken Shiba",
"KAINET": "KAINET",
"KAKA": "KAKA NFT World",
+ "KAKI": "Doge KaKi",
"KAL": "Kaleido",
"KALA": "Kalata Protocol",
"KALAM": "Kalamint",
"KALDI": "Kaldicoin",
"KALI": "Kalissa",
+ "KALIS": "KALICHAIN",
"KALLY": "Polkally",
"KALM": "KALM",
"KALYCOIN": "KalyCoin",
@@ -5003,6 +6091,7 @@
"KAREN": "KarenCoin",
"KARMA": "Karma",
"KARMAD": "Karma DAO",
+ "KARRAT": "KARRAT",
"KART": "Dragon Kart",
"KAS": "Kaspa",
"KASSIAHOME": "Kassia Home",
@@ -5010,6 +6099,9 @@
"KAT": "Kambria",
"KATA": "Katana Inu",
"KATANA": "Katana Finance",
+ "KATCHU": "Katchu Coin",
+ "KATT": "Katt Daddy",
+ "KATYCAT": "Katy Perry Fans",
"KATZ": "KATZcoin",
"KAU": "Kinesis Gold",
"KAVA": "Kava",
@@ -5029,6 +6121,7 @@
"KCAKE": "KittyCake",
"KCAL": "Phantasma Energy",
"KCASH": "Kcash",
+ "KCAT": "KING OF CATS",
"KCCM": "KCC MemePad",
"KCCPAD": "KCCPad",
"KCH": "Keep Calm and Hodl",
@@ -5039,11 +6132,13 @@
"KDC": "Klondike Coin",
"KDG": "Kingdom Game 4.0",
"KDIA": "KDIA COIN",
+ "KDOE": "Kudoe",
"KDOGE": "KingDoge",
"KDX": "eckoDAO",
"KEANU": "Keanu Inu",
"KEC": "KEYCO",
"KED": "Klingon Empire Darsek",
+ "KEEMJONG": "KEEM JONG UNN",
"KEEP": "Keep Network",
"KEES": "Korea Entertainment Education & Shopping",
"KEI": "Keisuke Inu",
@@ -5054,28 +6149,40 @@
"KELPIE": "Kelpie Inu",
"KEMA": "Kemacoin",
"KEN": "Kencoin",
+ "KENKA": "KENKA METAVERSE",
+ "KENNEL": "Kennel Locker",
+ "KENSHI": "Kenshi",
"KEP": "Kepler",
+ "KEPT": "KeptChain",
"KERMIT": "KermitTheCoin",
"KETAN": "Ketan",
"KEX": "Kira Network",
"KEXCOIN": "KexCoin",
"KEY": "SelfKey",
"KEYC": "KeyCoin",
+ "KEYCAT": "Keyboard Cat",
"KEYFI": "KeyFi",
+ "KEYT": "REBIT",
"KFC": "Chicken",
"KFI": "Klever Finance",
+ "KFR": "KING FOREVER",
"KFT": "Knit Finance",
"KFX": "KnoxFS",
"KGC": "Krypton Galaxy Coin",
"KGO": "Kiwigo",
+ "KGT": "Kaby Gaming Token",
+ "KHAI": "khai",
"KHM": "Kohima",
"KI": "Genopets KI",
"KIAN": "Porta",
"KIBA": "Kiba Inu",
+ "KIBSHI": "KiboShib",
"KICK": "Kick",
"KICKS": "GetKicks",
"KIF": "KittenFinance",
+ "KIKO": "KIKO",
"KILLER": "Fat Cat Killer",
+ "KILLSOLANA": "KillSolana",
"KILT": "KILT Protocol",
"KIM": "King Money",
"KIMBO": "Kimbo",
@@ -5088,23 +6195,36 @@
"KINGB": "King Bean",
"KINGBONK": "King Bonk",
"KINGCAT": "King Cat",
+ "KINGDOG": "King Dog Inu",
"KINGDOMQUEST": "Kingdom Quest",
"KINGF": "King Finance",
"KINGGROK": "King Grok",
+ "KINGPEPE": "KING PEPE",
"KINGSHIB": "King Shiba",
+ "KINGSLERF": "King Slerf",
+ "KINGSORA": "King Sora",
"KINGSWAP": "KingSwap",
+ "KINGTRUMP": "King Trump",
"KINGU": "KINGU",
+ "KINGWIF": "King WIF",
+ "KINGY": "KINGYTON",
"KINT": "Kintsugi",
+ "KINU": "Kragger Inu",
"KIRA": "Kira the Injective Cat",
"KIRBY": "Kirby Inu",
+ "KIRBYCEO": "Kirby CEO",
+ "KIRBYINU": "Kirby Inu",
"KIRBYRELOADED": "Kirby Reloaded",
"KIRO": "Kirobo",
"KISC": "Kaiser",
"KISHIMOTO": "Kishimoto Inu",
"KISHU": "Kishu Inu",
+ "KIT": "Kitsune",
"KITA": "KITA INU",
"KITSU": "Kitsune Inu",
"KITTENS": "Kitten Coin",
+ "KITTENWIF": "KittenWifHat",
+ "KITTI": "KITTI TOKEN",
"KITTY": "Kitty Inu",
"KIWI": "kiwi",
"KIZUNA": "KIZUNA",
@@ -5122,44 +6242,63 @@
"KLO": "Kalao",
"KLON": "Klondike Finance",
"KLP": "Kulupu",
+ "KLS": "Karlsen",
"KLT": "Kamaleont",
"KLUB": "KlubCoin",
"KLV": "Klever",
"KMA": "Calamari Network",
+ "KMC": "Kitsumon",
"KMD": "Komodo",
"KML": "KinkyMilady",
+ "KMNO": "Kamino",
"KMON": "Kryptomon",
"KMX": "KiMex",
+ "KNB": "Kronobit Networks Blockchain",
"KNC": "Kyber Network Crystal v2",
"KNCL": "Kyber Network Crystal Legacy",
+ "KNDC": "KanadeCoin",
+ "KNDM": "Kingdom",
"KNDX": "Kondux",
+ "KNFT": "KStarNFT",
"KNG": "BetKings",
"KNGN": "KingN Coin",
"KNIGHT": "Forest Knight",
+ "KNINE": "K9 Finance",
"KNJ": "Kunji Finance",
+ "KNOB": "KNOB",
"KNOT": "Karmaverse",
"KNOW": "KNOW",
+ "KNOX": "KnoxDAO",
+ "KNS": "Kenshi",
"KNT": "Knekted",
"KNTO": "Kento",
"KNW": "Knowledge",
"KOBE": "Shabu Shabu",
"KOBO": "KoboCoin",
+ "KODA": "Koda Cryptocurrency",
"KODACHI": "Kodachi Token",
+ "KOGE": "BNB48 Club Token",
"KOGECOIN": "KogeCoin.io",
"KOI": "Koi Network",
"KOIN": "Koinos",
+ "KOINB": "KoinBülteni Token",
"KOIP": "KoiPond",
+ "KOJI": "Koji",
"KOK": "KOK Coin",
"KOKO": "KokoSwap",
"KOL": "Kollect",
"KOLION": "Kolion",
"KOM": "Kommunitas",
+ "KOMO": "Komoverse",
"KOMP": "Kompass",
+ "KOMPETE": "KOMPETE",
"KON": "KonPay",
"KONG": "KONG",
"KONO": "Konomi Network",
+ "KORA": "Kortana",
"KORE": "KORE Vault",
"KOREC": "Kore",
+ "KORRA": "KORRA",
"KOTO": "Koto",
"KOY": "Koyo",
"KOZ": "Kozjin",
@@ -5168,7 +6307,9 @@
"KPAD": "KickPad",
"KPAPA": "KPAPA",
"KPC": "KEEPs Coin",
+ "KPHI": "Kephi Gallery",
"KPL": "Kepple",
+ "KPN": "KonnektVPN",
"KPOP": "KPOP Coin",
"KRAK": "Kraken",
"KRATOS": "KRATOS",
@@ -5184,6 +6325,7 @@
"KRN": "KRYZA Network",
"KRO": "Betoken",
"KROM": "Kromatika",
+ "KROME": "KROME Shares",
"KRONE": "Kronecoin",
"KRP": "Kryptoin",
"KRRX": "Kyrrex",
@@ -5202,8 +6344,10 @@
"KSS": "Krosscoin",
"KST": "StarKST",
"KSTT.BITCI": "Kocaelispor Fan Token",
+ "KSWAP": "KyotoSwap",
"KSYS": "K-Systems",
"KT": "Kuai Token",
+ "KTC": "KTX.Finance",
"KTK": "KryptCoin",
"KTN": "Kattana",
"KTO": "Kounotori",
@@ -5220,18 +6364,22 @@
"KUKU": "KuKu",
"KUMA": "Kuma Inu",
"KUMU": "Kumu Finance",
+ "KUNAI": "KunaiKash",
"KUNCI": "Kunci Coin",
"KUR": "Kuro",
"KURO": "Kurobi",
"KURT": "Kurrent",
+ "KUS": "KuSwap",
"KUSA": "Kusa Inu",
"KUSD": "Kowala",
"KUSH": "KushCoin",
+ "KUSUNOKI": "Kusunoki Samurai",
"KUV": "Kuverit",
"KVERSE": "KEEPs Coin",
"KVI": "KVI Chain",
"KVNT": "KVANT",
"KVT": "Kinesis Velocity Token",
+ "KWAI": "KWAI",
"KWATT": "4New",
"KWD": "KIWI DEFI",
"KWENTA": "Kwenta",
@@ -5239,25 +6387,33 @@
"KWIK": "KwikSwap",
"KWS": "Knight War Spirits",
"KWT": "Kawaii Island",
+ "KXA": "Kryxivia",
+ "KXC": "KingXChain",
"KXUSD": "kxUSD",
"KYCC": "KYCCOIN",
"KYL": "Kylin Network",
"KYOKO": "Kyoko",
"KYTE": "Kambria Yield Tuning Engine",
+ "KYUB": "Kyuubi",
"KYVE": "KYVE Network",
"KZC": "KZCash",
"KZEN": "Kaizen",
"L": "L inu",
"L2": "Leverj Gluon",
+ "L2DAO": "Layer2DAO",
"L3P": "Lepricon",
+ "L3USD": "L3USD",
"L7": "L7",
"LA": "LATOKEN",
"LAB": "Labrys",
"LABRA": "LabraCoin",
"LABS": "LABS Group",
"LABX": "Stakinglab",
+ "LABZ": "Insane Labz",
"LACCOIN": "LocalAgro",
"LACE": "Lovelace World",
+ "LADA": "LadderCaster",
+ "LADYF": "Milady Wif Hat",
"LADYS": "Milady Meme Coin",
"LAEEB": "LaEeb",
"LAELAPS": "Laelaps",
@@ -5266,15 +6422,21 @@
"LAKE": "Data Lake",
"LALA": "LaLa World",
"LAMB": "Lambda",
+ "LAMBO": "LAMBO",
"LANA": "LanaCoin",
"LANC": "Lanceria",
"LAND": "Landshare",
"LANDB": "LandBox",
"LANDS": "Two Lands",
+ "LANDV1": "Landshare v1",
+ "LANDWOLF": "LANDWOLF",
"LANE": "LaneAxis",
"LAO": "LC Token",
+ "LAPTOP": "Hunter Biden's Laptop",
"LAR": "LinkArt",
"LARIX": "Larix",
+ "LARO": "Anito Legends",
+ "LARRY": "LarryCoin",
"LAS": "LNAsolution Coin",
"LAT": "PlatON Network",
"LATTE": "LatteSwap",
@@ -5294,6 +6456,7 @@
"LBK": "LBK",
"LBL": "LABEL Foundation",
"LBLOCK": "Lucky Block",
+ "LBM": "Libertum",
"LBR": "LaborCrypto",
"LBT": "Law Blocks",
"LBTC": "LiteBitcoin",
@@ -5302,6 +6465,7 @@
"LC4": "LEOcoin",
"LCASH": "LitecoinCash",
"LCC": "LitecoinCash",
+ "LCD": "Lucidao",
"LCG": "LCG",
"LCK": "Luckbox",
"LCMG": "ElysiumG",
@@ -5321,6 +6485,7 @@
"LDO": "Lido DAO",
"LDOGE": "LiteDoge",
"LDX": "Litedex",
+ "LDXG": "LondonCoinGold",
"LDZ": "Voodoo Token",
"LEA": "LeaCoin",
"LEAD": "Lead Wallet",
@@ -5334,6 +6499,7 @@
"LEET": "LeetSwap",
"LEG": "Legia Warsaw Fan Token",
"LEGO": "Lego Coin",
+ "LEIA": "Leia",
"LELE": "Lelecoin",
"LEMC": "LemonChain",
"LEMD": "Lemond",
@@ -5341,8 +6507,10 @@
"LEMO": "LemoChain",
"LEMON": "LemonCoin",
"LEN": "Liqnet",
+ "LENARD": "Lenard",
"LEND": "Aave",
"LENDA": "Lenda",
+ "LENDS": "Lends",
"LENFI": "Lenfi",
"LENIN": "LeninCoin",
"LEO": "LEO Token",
@@ -5351,28 +6519,37 @@
"LEOX": "Galileo",
"LEPA": "Lepasa",
"LEPEN": "LePenCoin",
+ "LESBIAN": "Lesbian Inu",
"LESS": "Less Network",
"LESSF": "LessFnGas",
"LET": "LinkEye",
+ "LETIT": "Letit",
+ "LETSGO": "Lets Go Brandon",
"LEU": "CryptoLEU",
"LEV": "Levante U.D. Fan Token",
+ "LEVE": "Leve Invest",
+ "LEVELG": "LEVELG",
"LEVER": "LeverFi",
"LEVERJ": "Leverj",
"LEVL": "Levolution",
"LEX": "Elxis",
"LEXI": "LEXIT",
"LEZ": "Peoplez",
+ "LEZGI": "LEZGI Token",
"LF": "Linkflow",
"LFC": "BigLifeCoin",
"LFG": "Gamerse",
"LFI": "LunaFi",
+ "LFNTY": "Lifinity",
"LFT": "Lend Flare Dao",
"LFW": "Linked Finance World",
"LGBT": "Let's Go Brandon Token",
"LGBTQ": "LGBTQoin",
+ "LGC": "LiveGreen Coin",
"LGCY": "LGCY Network",
"LGD": "Legends Cryptocurrency",
"LGO": "Legolas Exchange",
+ "LGOLD": "LYFE GOLD",
"LGOT": "LGO Token",
"LGR": "Logarithm",
"LGX": "Legion Network",
@@ -5385,6 +6562,7 @@
"LIBERA": "Libera Financial",
"LIBERO": "Libero Financial",
"LIBFX": "Libfx",
+ "LIBRA": "Libra Protocol",
"LIBRE": "Libre",
"LIC": "Ligercoin",
"LICK": "PetLFG",
@@ -5393,11 +6571,14 @@
"LIDER": "Lider Token",
"LIEN": "Lien",
"LIF": "Winding Tree",
+ "LIF3": "LIF3",
"LIFE": "Life Crypto",
+ "LIFEBIRD": "LIFEBIRD",
"LIFETOKEN": "LIFE",
"LIFT": "Uplift",
"LIGER": "Ligercoin",
"LIGHT": "LightChain",
+ "LIGMA": "Ligma Node",
"LIGO": "Ligo",
"LIKE": "Only1",
"LIKEC": "LikeCoin",
@@ -5411,10 +6592,14 @@
"LINANET": "Lina",
"LINDA": "Metrix",
"LINDACEO": "LindaYacc Ceo",
+ "LINEA": "Linea",
"LING": "Lingose",
"LINK": "Chainlink",
"LINKA": "LINKA",
"LINKC": "LINKCHAIN",
+ "LINKFI": "LinkFi",
+ "LINQ": "LINQ",
+ "LINSPIRIT": "linSpirit",
"LINU": "Luna Inu",
"LINX": "Linx",
"LION": "Lion Token",
@@ -5422,12 +6607,14 @@
"LIPS": "LipChain",
"LIQ": "LIQ Protocol",
"LIQD": "Liquid Finance",
+ "LIQR": "Topshelf Finance",
"LIQUI": "Liquidus",
"LIR": "Let it Ride",
"LIS": "Realis Network",
"LISA": "Lisa Simpson",
"LIST": "KList Protocol",
"LIT": "Litentry",
+ "LITE": "Lite USD",
"LITENETT": "Litenett",
"LITH": "Lithium Finance",
"LITHIUM": "Lithium",
@@ -5446,20 +6633,22 @@
"LK7": "Lucky7Coin",
"LKC": "LuckyCoin",
"LKD": "LinkDao",
- "LKK": "Lykke",
"LKN": "LinkCoin Token",
"LKSM": "Liquid KSM",
"LKT": "Locklet",
"LKU": "Lukiu",
"LKY": "LuckyCoin",
+ "LL": "LightLink",
"LLAND": "Lyfe Land",
"LLG": "Loligo",
"LLION": "Lydian Lion",
+ "LLT": "LILLIUS",
"LM": "LeisureMeta",
"LMAO": "LMAO Finance",
"LMC": "LomoCoin",
"LMCH": "Latamcash",
"LMCSWAP": "LimoCoin SWAP",
+ "LMEOW": "lmeow",
"LMR": "Lumerin",
"LMT": "Lympo Market Token",
"LMTOKEN": "LM Token",
@@ -5469,6 +6658,9 @@
"LN": "LINK",
"LNC": "Blocklancer",
"LND": "Lendingblock",
+ "LNDRR": "Lendr Network",
+ "LNDRY": "LNDRY",
+ "LNDX": "LandX Finance",
"LNK": "Ethereum.Link",
"LNKC": "Linker Coin",
"LNL": "LunarLink",
@@ -5476,7 +6668,9 @@
"LNT": "Lottonation",
"LNX": "Lunox Token",
"LOA": "League of Ancients",
+ "LOAF": "LOAF CAT",
"LOAN": "Lendoit",
+ "LOBO": "LOBO•THE•WOLF•PUP",
"LOBS": "Lobstex",
"LOC": "LockTrip",
"LOCC": "Low Orbit Crypto Cannon",
@@ -5486,27 +6680,35 @@
"LOCO": "Loco",
"LOCUS": "Locus Chain",
"LODE": "Lodestar",
+ "LOE": "Legends of Elysium",
"LOF": "Land of Fantasy",
+ "LOFI": "LOFI",
"LOG": "Wood Coin",
"LOIS": "Lois Token",
"LOKA": "League of Kingdoms",
"LOKR": "Polkalokr",
"LOL": "EMOGI Network",
+ "LOLA": "Lola",
"LOLC": "LOL Coin",
"LON": "Tokenlon",
"LONG": "Longdrink Finance",
+ "LONGFU": "LONGFU",
"LOOK": "LookCoin",
"LOOKS": "LooksRare",
"LOOM": "Loom Network",
"LOON": "Loon Network",
"LOONG": "PlumpyDragons",
"LOOP": "LOOP",
+ "LOOPY": "Loopy",
"LOOT": "LootBot",
"LOOTEX": "Lootex",
"LOPES": "Leandro Lopes",
"LORD": "MEMELORD",
"LORDS": "LORDS",
"LORDZ": "Meme Lordz",
+ "LORGY": "Memeolorgy",
+ "LORY": "Yield Parrot",
+ "LOST": "Lost Worlds",
"LOT": "Lukki Operating Token",
"LOTES": "Loteo",
"LOTEU": "Loteo",
@@ -5519,6 +6721,7 @@
"LOVELY": "Lovely Inu finance",
"LOVESNOOPY": "I LOVE SNOOPY",
"LOWB": "Loser Coin",
+ "LOWQ": "lowq frends",
"LOX": "Lox Network",
"LOYAL": "Loyalty Labs",
"LP": "Liquid Protocol",
@@ -5547,11 +6750,17 @@
"LSD": "LightSpeedCoin",
"LSDOGE": "LSDoge",
"LSETH": "Liquid Staked ETH",
+ "LSHARE": "LSHARE",
+ "LSILVER": "Lyfe Silver",
"LSK": "Lisk",
"LSP": "Lumenswap",
"LSPHERE": "Lunasphere",
+ "LSR": "LaserEyes",
"LSS": "Lossless",
"LST": "Lendroid Support Token",
+ "LSTAR": "Learning Star",
+ "LSV": "Litecoin SV",
+ "LSWAP": "LoopSwap",
"LT": "Loctite Assets Token",
"LTA": "Litra",
"LTB": "Litebar",
@@ -5585,8 +6794,11 @@
"LTX": "Lattice Token",
"LTZ": "Litecoinz",
"LUA": "Lua Token",
+ "LUAUSD": "Lumi Finance",
+ "LUBE": "Joe Lube Coin",
"LUC": "Play 2 Live",
"LUCA": "LUCA",
+ "LUCHOW": "LunaChow",
"LUCK": "Lucky Cat",
"LUCKY": "Lucky Lion",
"LUCKYB": "LuckyBlocks",
@@ -5598,12 +6810,14 @@
"LUFFYG": "Luffy G5",
"LUFFYOLD": "Luffy",
"LUIGI": "Luigi Inu",
+ "LUIS": "Tongue Cat",
"LULU": "LULU",
"LUM": "Illuminates",
"LUMA": "LUMA Token",
"LUMI": "LUMI Credits",
"LUN": "Lunyr",
"LUNA": "Terra",
+ "LUNAR": "Lunar",
"LUNAT": "Lunatics",
"LUNC": "Terra Classic",
"LUNCARMY": "LUNCARMY",
@@ -5615,6 +6829,7 @@
"LUPIN": "LUPIN",
"LUS": "Luna Rush",
"LUSD": "Liquity USD",
+ "LUSH": "Lush AI",
"LUT": "Cinemadrom",
"LUTETIUM": "Lutetium Coin",
"LUX": "LUXCoin",
@@ -5622,6 +6837,7 @@
"LUXY": "Luxy",
"LVG": "Leverage Coin",
"LVIP": "Limitless VIP",
+ "LVL": "Level",
"LVM": "LakeViewMeta",
"LVN": "LivenPay",
"LVX": "Level01",
@@ -5646,30 +6862,48 @@
"LYQD": "eLYQD",
"LYRA": "Lyra",
"LYTX": "LYTIX",
+ "LYUM": "Layerium",
+ "LYVE": "Lyve Finance",
"LYX": "LUKSO",
"LYXE": "LUKSO",
+ "LYZI": "Lyzi",
"LZ": "LaunchZone",
+ "LZM": "LoungeM",
+ "M": "MetaVerse-M",
"M1": "SupplyShock",
"M2O": "M2O Token",
"M87": "MESSIER",
+ "MABA": "Make America Based Again",
"MAC": "MachineCoin",
"MADANA": "MADANA",
"MADC": "MadCoin",
"MADOG": "MarvelDoge",
+ "MADPEPE": "Mad Pepe",
"MAEP": "Maester Protocol",
+ "MAF": "MetaMAFIA",
"MAG": "Magnet",
"MAGA": "TRUMP",
+ "MAGACAT": "MAGACAT",
+ "MAGAIBA": "Magaiba",
+ "MAGATRUMP": "MAGA Trump",
+ "MAGE": "MetaBrands",
"MAGIC": "Magic",
"MAGICF": "MagicFox",
+ "MAGICK": "Cosmic Universe Magick",
"MAGICV": "Magicverse",
"MAGIK": "Magik Finance",
+ "MAGNET": "Yield Magnet",
"MAHA": "MahaDAO",
"MAI": "Mindsync",
+ "MAIA": "Maia",
"MAID": "MaidSafe Coin",
"MAIL": "CHAINMAIL",
+ "MAJO": "Majo",
"MAKE": "MAKE",
"MAKI": "MakiSwap",
+ "MALL": "Metamall",
"MALLY": "Malamute Finance",
+ "MAMAI": "MammothAI",
"MAN": "Matrix AI Network",
"MANA": "Decentraland",
"MANC": "Mancium",
@@ -5677,6 +6911,7 @@
"MANDOX": "MandoX",
"MANE": "MANE",
"MANGA": "Manga Token",
+ "MANIA": "ScapesMania",
"MANNA": "Manna",
"MANTA": "Manta Network",
"MANTLE": "Mantle",
@@ -5686,11 +6921,15 @@
"MAPR": "Maya Preferred 223",
"MAPS": "MAPS",
"MAR3": "Mar3 AI",
+ "MARCO": "MELEGA",
"MARE": "Mare Finance",
+ "MARGA": "Margaritis",
"MARGINLESS": "Marginless",
"MARI": "MarijuanaCoin",
+ "MARIO": "MARIO CEO",
"MARK": "Benchmark Protocol",
"MARLEY": "Marley Token",
+ "MARMAJ": "marmaj",
"MARO": "Maro",
"MARS": "MarsCoin",
"MARS4": "MARS4",
@@ -5707,22 +6946,25 @@
"MARXCOIN": "MarxCoin",
"MARYJ": "MaryJane Coin",
"MAS": "Midas Protocol",
+ "MASA": "Masa",
"MASK": "Mask Network",
"MASP": "Market.space",
"MASQ": "MASQ",
"MASS": "MASS",
+ "MASSA": "Massa",
"MASTER": "Mastercoin",
"MASTERCOIN": "MasterCoin",
"MASTERMINT": "MasterMint",
"MASYA": "MASYA",
"MAT": "MiniApps",
+ "MATA": "Ninneko",
+ "MATAR": "MATAR AI",
"MATCH": "Matching Game",
"MATE": "Mate",
"MATH": "MATH",
"MATIC": "Polygon",
"MATICX": "Stader MaticX",
"MATPAD": "MaticPad",
- "MATTER": "AntiMatter",
"MAU": "MAU",
"MAV": "Maverick Protocol",
"MAVIA": "Heroes of Mavia",
@@ -5733,13 +6975,19 @@
"MAXX": "MAXX Finance",
"MAY": "Theresa May Coin",
"MAYACOIN": "MayaCoin",
+ "MAYP": "Maya Preferred",
"MAZC": "MyMazzu",
"MAZI": "MaziMatic",
+ "MAZZE": "Mazze",
"MB": "MineBee",
+ "MB4": "Matthew Box 404",
"MB8": "MB8 Coin",
+ "MBAPEPE": "MBAPEPE",
"MBASE": "Minebase",
"MBCASH": "MBCash",
"MBCC": "Blockchain-Based Distributed Super Computing Platform",
+ "MBD": "MBD Financials",
+ "MBE": "MxmBoxcEus Token",
"MBET": "MoonBet",
"MBF": "MoonBear.Finance",
"MBI": "Monster Byte Inc",
@@ -5750,6 +6998,7 @@
"MBM": "MobileBridge Momentum",
"MBN": "Mobilian Coin",
"MBONK": "megaBonk",
+ "MBOT": "MoonBot",
"MBOX": "MOBOX",
"MBP": "MobiPad",
"MBRS": "Embers",
@@ -5768,11 +7017,14 @@
"MCB": "MCDEX",
"MCC": "Magic Cube Coin",
"MCD": "CDbio",
+ "MCELO": "Moola Celo",
+ "MCEUR": "Moola Celo EUR",
"MCF": "MCFinance",
"MCG": "MicroChains Gov Token",
"MCH": "Meconcash",
"MCHC": "My Crypto Heroes",
"MCI": "Musiconomi",
+ "MCIV": "Mars Civ Project",
"MCLB": "Millennium Club Coin",
"MCN": "mCoin",
"MCO": "Crypto.com",
@@ -5785,29 +7037,38 @@
"MCRT": "MagicCraft",
"MCS": "MCS Token",
"MCT": "MyConstant",
+ "MCTP": "Metacraft",
"MCU": "MediChain",
"MCUSD": "Moola Celo USD",
"MCV": "MCV Token",
"MDA": "Moeda",
+ "MDAI": "MindAI",
"MDAO": "MarsDAO",
"MDB": "Million Dollar Baby",
"MDC": "MedicCoin",
"MDCL": "Medicalchain",
+ "MDDN": "Modden",
"MDF": "MatrixETF",
"MDH": "Telemedicoin",
"MDI": "Medicle",
"MDICE": "Multidice",
"MDM": "Medium",
"MDN": "Modicoin",
+ "MDR": "Mudra MDR",
"MDS": "MediShares",
"MDT": "Measurable Data Token",
+ "MDTK": "MDtoken",
"MDU": "MDUKEY",
+ "MDUS": "MEDIEUS",
"MDX": "Mdex (BSC)",
"MDXH": "Mdex (HECO)",
"ME": "All.me",
"MEAN": "Meanfi",
"MEB": "Meblox Protocol",
"MEC": "MegaCoin",
+ "MECH": "Mech Master",
+ "MECHA": "Mechanium",
+ "MECI": "Meta Game City",
"MED": "Medibloc",
"MEDI": "MediBond",
"MEDIA": "Media Network",
@@ -5816,58 +7077,84 @@
"MEDIT": "MediterraneanCoin",
"MEE": "Medieval Empires",
"MEED": "Meeds DAO",
+ "MEER": "Qitmeer Network",
"MEET": "CoinMeet",
"MEETONE": "MEET.ONE",
"MEF": "MEFLEX",
"MEFA": "Metaverse Face",
"MEGA": "MegaFlash",
"MEGABOT": "Megabot",
+ "MEGAHERO": "MEGAHERO",
+ "MEGALAND": "Metagalaxy Land",
+ "MEGALANDV1": "Metagalaxy Land v1",
+ "MEH": "meh",
"MEL": "MELX",
+ "MELANIA": "Melania Trump",
"MELB": "Minelab",
"MELD": "Melodity",
"MELI": "Meli Games",
"MELLO": "Mello Token",
"MELO": "Melo Token",
+ "MELON": "cocomELON",
"MELOS": "Melos Studio",
"MELT": "Defrost Finance",
"MEM": "Memecoin",
+ "MEMAGX": "Meta Masters Guild Games",
+ "MEMD": "MemeDAO",
"MEME": "Memecoin",
"MEMEAI": "Meme Ai",
"MEMEETF": "Meme ETF",
+ "MEMEFI": "MemeFi",
"MEMEINU": "Meme Inu",
"MEMEME": "MEMEME",
"MEMEMINT": "MEME MINT",
+ "MEMEMUSK": "MEME MUSK",
+ "MEMERUNE": "MEME•ECONOMICS",
+ "MEMES": "MemeCoinDAO",
"MEMET": "MEMETOON",
"MEMETIC": "Memetic",
"MEMORYCOIN": "MemoryCoin",
+ "MENDI": "Mendi Finance",
"MENGO": "Flamengo Fan Token",
"MENLO": "Menlo One",
"MEOW": "Zero Tech",
+ "MEOWG": "MeowGangs",
+ "MEOWIF": "Meowifhat",
"MEPAD": "MemePad",
"MER": "Mercurial Finance",
"MERCE": "MetaMerce",
"MERCU": "Merculet",
"MERCURY": "Mercury",
+ "MEREDITH": "Taylor Swift's Cat MEREDITH",
+ "MERGE": "Merge",
"MERI": "Merebel",
"MERIDIAN": "Meridian Network LOCK",
"MERKLE": "Merkle Network",
+ "MERL": "Merlin Chain",
+ "MERY": "Mistery On Cro",
"MESA": "MetaVisa",
"MESG": "MESG",
"MESH": "MeshBox",
"MESSI": "MESSI COIN",
"MET": "Metronome",
"META": "Metadium",
+ "METABOT": "Robot Warriors",
"METAC": "Metacoin",
"METACAT": "MetaCat",
"METACR": "Metacraft",
+ "METADOGE": "MetaDoge",
"METADOGEV2": "MetaDoge V2",
"METAF": "MetaFastest",
"METAG": "MetagamZ",
+ "METAGEAR": "MetaGear",
"METAL": "Metal Blockchain",
"METALCOIN": "MetalCoin",
"METAMEME": "met a meta metameme",
+ "METAMUSK": "Musk Metaverse",
"METAN": "Metan Evolutions",
+ "METANO": "Metano",
"METAPK": "Metapocket",
+ "METAQ": "MetaQ",
"METAS": "Metaseer",
"METAT": "MetaTrace",
"METAUFO": "MetaUFO",
@@ -5883,8 +7170,13 @@
"METM": "MetaMorph",
"METO": "Metafluence",
"METOLD": "Metronome",
+ "METRO": "Metropoly",
+ "MEU": "MetaUnit",
"MEV": "MEVerse",
"MEVR": "Metaverse VR",
+ "MEW": "cat in a dogs world",
+ "MEWING": "MEWING",
+ "MEWSWIFHAT": "cats wif hats in a dogs world",
"MEWTWO": "Mewtwo Inu",
"MEX": "MEX",
"MEXC": "MEXC Token",
@@ -5892,7 +7184,10 @@
"MEZZ": "MEZZ Token",
"MF": "MetaFighter",
"MF1": "Meta Finance",
+ "MFAM": "Moonwell Apollo",
"MFC": "MFCoin",
+ "MFER": "mfercoin",
+ "MFERS": "MFERS",
"MFET": "MultiFunctional Environmental Token",
"MFG": "SyncFab",
"MFI": "Marginswap",
@@ -5900,17 +7195,22 @@
"MFPS": "Meta FPS",
"MFS": "Moonbase File System",
"MFT": "Hifi Finance (Old)",
+ "MFTU": "Mainstream For The Underground",
"MFUND": "Memefund",
"MFX": "MFChain",
"MG": "MinerGate Token",
"MGAMES": "Meme Games",
"MGAR": "Metagame Arena",
+ "MGC": "Meta Games Coin",
"MGD": "MassGrid",
"MGG": "MetaGaming Guild",
"MGGT": "Maggie Token",
+ "MGKL": "MAGIKAL.ai",
+ "MGLC": "MetaverseMGL",
"MGLD": "Metallurgy",
"MGN": "MagnaCoin",
"MGO": "MobileGo",
+ "MGOD": "MetaGods",
"MGP": "MangoChain",
"MGPT": "MotoGP Fan Token",
"MGT": "Megatech",
@@ -5929,16 +7229,22 @@
"MIBR": "MIBR Fan Token",
"MIC": "Mithril Cash",
"MICE": "Mice",
+ "MICHI": "michi",
"MICKEY": "Steamboat Willie",
+ "MICRO": "Micromines",
+ "MIDAI": "Midway AI",
"MIDAS": "Midas",
"MIDASDOLLAR": "Midas Dollar Share",
"MIDN": "Midnight",
"MIE": "MIE Network",
+ "MIF": "monkeywifhat",
"MIG": "Migranet",
"MIGMIG": "MigMig Swap",
+ "MIIDAS": "Miidas NFT",
"MIININGNFT": "MiningNFT",
"MIKS": "MIKS COIN",
"MIL": "Milllionaire Coin",
+ "MILE": "milestoneBased",
"MILEI": "MILEI",
"MILK": "Milkshake Swap",
"MILK2": "Spaceswap MILK2",
@@ -5953,21 +7259,28 @@
"MIMI": "MIMI Money",
"MIMIR": "Mimir",
"MIMO": "MIMO Parallel Governance Token",
+ "MIN": "MINDOL",
"MINA": "Mina Protocol",
"MINC": "MinCoin",
- "MIND": "MINDOL",
+ "MIND": "Morpheus Labs",
"MINDCOIN": "MindCoin",
"MINDEX": "Mindexcoin",
"MINDGENE": "Mind Gene",
"MINDS": "Minds",
"MINE": "SpaceMine",
+ "MINER": "MINER",
"MINERALS": "Minerals Coin",
+ "MINETTE": "Vibe Cat",
"MINEX": "Minex",
"MINI": "Mini",
+ "MINIBNBTIGER": "MiniBNBTiger",
"MINIDOGE": "MiniDOGE",
"MINIFOOTBALL": "Minifootball",
"MINIMYRO": "Mini Myro",
+ "MINION": "Minions INU",
+ "MINIPEPE": "MiniPepe",
"MINISHIB": "miniSHIB ETH",
+ "MINO": "MINO INU",
"MINS": "Minswap",
"MINT": "Mint Club",
"MINTCOIN": "MintCoin",
@@ -5988,17 +7301,23 @@
"MISHKA": "Mishka Token",
"MISS": "MISS",
"MIST": "Mist",
+ "MISTRAL": "Mistral AI",
"MIT": "Galaxy Blitz",
"MITC": "MusicLife",
"MITH": "Mithril",
+ "MITHRIL": "CLIMBERS",
"MITX": "Morpheus Infrastructure Token",
"MIV": "MakeItViral",
"MIVA": "Minerva Wallet",
"MIVRS": "Minionverse",
"MIX": "MIXMARVEL",
"MIXCOIN": "Mixaverse",
+ "MIY": "Icel Idman Yurdu Token",
"MJT": "MojitoSwap",
+ "MK": "Meme Kombat",
+ "MKC": "Meta Kongz",
"MKEY": "MEDIKEY",
+ "MKONG": "MEME KONG",
"MKR": "Maker",
"MKT": "MikeToken",
"MKUSD": "Prisma mkUSD",
@@ -6010,17 +7329,22 @@
"MLK": "MiL.k",
"MLN": "Enzyme",
"MLNK": "Malinka",
+ "MLOKY": "MLOKY",
"MLS": "CPROP",
"MLT": "MIcro Licensing Coin",
"MLTC": "MultiWallet Coin",
+ "MLTPX": "MoonLift Capital",
"MLXC": "Marvellex Classic",
"MM": "Millimeter",
+ "MMA": "Meme Alliance",
"MMAI": "MetamonkeyAi",
+ "MMAON": "MMAON",
"MMAPS": "MapMetrics",
"MMC": "Monopoly Millionaire Control",
"MMETA": "Duckie Land Multi Metaverse",
"MMF": "MMFinance",
"MMG": "Monopoly Millionaire Game",
+ "MMIT": "MangoMan Intelligent",
"MMNXT": "MMNXT",
"MMO": "MMOCoin",
"MMPRO": "Market Making Pro",
@@ -6034,6 +7358,7 @@
"MMX": "MMX",
"MMXIV": "MaieutiCoin",
"MMXVI": "MMXVI",
+ "MMY": "Mummy Finance",
"MN": "Cryptsy Mining Contract",
"MNB": "MoneyBag",
"MNC": "MainCoin",
@@ -6046,14 +7371,18 @@
"MNFTS": "Marvelous NFTs",
"MNG": "Moon Nation Game",
"MNGO": "Mango protocol",
+ "MNI": "Map Node",
"MNM": "Mineum",
"MNR": "Mineral",
"MNRB": "MoneyRebel",
+ "MNRCH": "Monarch",
"MNS": "Monnos",
"MNST": "MoonStarter",
+ "MNTA": "MantaDAO",
"MNTC": "Manet Coin",
"MNTG": "Monetas",
"MNTL": "AssetMantle",
+ "MNTO": "Minato",
"MNTP": "GoldMint",
"MNV": "MonetaVerde",
"MNVM": "Novam",
@@ -6071,11 +7400,15 @@
"MOBIE": "MobieCoin",
"MOBILE": "Helium Mobile",
"MOBU": "MOBU",
+ "MOBX": "MOBIX",
+ "MOBY": "Moby",
"MOC": "Mossland",
"MOCHI": "Mochiswap",
+ "MOCHICAT": "MochiCat",
"MOCO": "MoCo",
"MOD": "Modefi",
"MODA": "MODA DAO",
+ "MODAI": "Modai",
"MODC": "Modclub",
"MODEL": "Model Labs",
"MODEX": "Modex",
@@ -6087,8 +7420,10 @@
"MOFI": "MobiFi",
"MOFOLD": "Molecular Future (ERC20)",
"MOG": "Mog Coin",
+ "MOGGO": "MOGGO",
"MOGU": "Mogu",
"MOGX": "Mogu",
+ "MOH": "Medal of Honour",
"MOI": "MyOwnItem",
"MOIN": "MoinCoin",
"MOJO": "Mojocoin",
@@ -6096,6 +7431,7 @@
"MOL": "Molecule",
"MOLA": "MoonLana",
"MOLK": "Mobilink Token",
+ "MOLLY": "Molly",
"MOM": "Mother of Memes",
"MOMA": "Mochi Market",
"MON": "Medamon",
@@ -6111,15 +7447,19 @@
"MONG": "MongCoin",
"MONG20": "Mongoose 2.0",
"MONGBNB": "MongBNB",
+ "MONGOOSE": "Mongoose",
"MONI": "Monsta Infinite",
"MONIE": "Infiblue World",
"MONK": "Monkey Project",
+ "MONKE": "Monkecoin",
"MONKEY": "Monkey",
"MONKEYS": "Monkeys Token",
+ "MONKU": "Monku",
"MONO": "MonoX",
"MONONOKEINU": "Mononoke Inu",
"MONS": "Monsters Clan",
"MONST": "Monstock",
+ "MONSTA": "Cake Monster",
"MONT": "Monarch Token",
"MONTE": "Monte",
"MOO": "MooMonster",
@@ -6134,7 +7474,10 @@
"MOONER": "CoinMooner",
"MOONEY": "Moon DAO",
"MOONION": "Moonions",
+ "MOONKIZE": "MoonKize",
"MOONLIGHT": "Moonlight Token",
+ "MOONR": "PulseMoonR",
+ "MOONS": "Sailor Moons",
"MOONSHOT": "Moonshot",
"MOONSTAR": "MoonStar",
"MOOO": "Hashtagger",
@@ -6143,6 +7486,7 @@
"MOPS": "Mops",
"MORA": "Meliora",
"MORE": "More Coin",
+ "MORFEY": "Morfey",
"MOROS": "MOROS NET",
"MORPH": "Morpheus Token",
"MORRA": "Morra",
@@ -6153,13 +7497,16 @@
"MOTG": "MetaOctagon",
"MOTI": "Motion",
"MOTO": "Motocoin",
+ "MOUTAI": "Moutai",
"MOV": "MovieCoin",
"MOVD": "MOVE Network",
"MOVE": "MarketMove",
+ "MOVER": "Mover",
"MOVEY": "Movey",
"MOVEZ": "MoveZ",
"MOVON": "MovingOn Finance",
"MOVR": "Moonriver",
+ "MOW": "mouse in a cats world",
"MOWA": "Moniwar",
"MOZ": "Mozik",
"MP": "Membership Placeholders",
@@ -6169,12 +7516,16 @@
"MPD": "Metapad",
"MPG": "Max Property Group",
"MPH": "Morpher",
+ "MPI": "MetaPioneers",
"MPL": "Maple",
"MPLUS": "M+Plus",
"MPLX": "Metaplex",
"MPM": "Monopoly Meta",
"MPRO": "MediumProject",
+ "MPS": "Mt Pelerin Shares",
"MPT": "Meetple",
+ "MPWR": "Empower",
+ "MPX": "Morphex",
"MPXT": "Myplacex",
"MQL": "MiraQle",
"MQST": "MonsterQuest",
@@ -6202,9 +7553,15 @@
"MSA": "My Shiba Academia",
"MSB": "Misbloc",
"MSC": "Miningwatchdog Smartchain",
+ "MSCP": "Moonscape",
+ "MSCT": "MUSE ENT NFT",
"MSD": "MSD",
+ "MSG": "MsgSender",
+ "MSGO": "MetaSetGO",
"MSHD": "MASHIDA",
+ "MSHEESHA": "Sheesha Finance Polygon",
"MSHIB": "Magic Shiba Starter",
+ "MSHIP": "MetaShipping",
"MSN": "Manson Coin",
"MSOL": "Marinade Staked SOL",
"MSOT": "BTour Chain",
@@ -6212,6 +7569,8 @@
"MSQ": "MSquare Global",
"MSR": "Masari",
"MST": "Idle Mystic",
+ "MSTAR": "MerlinStarter",
+ "MSTETH": "Eigenpie mstETH",
"MSTO": "Millennium Sapphire",
"MSU": "MetaSoccer",
"MSWAP": "MoneySwap",
@@ -6225,31 +7584,39 @@
"MTD": "Minted",
"MTEL": "MEDoctor",
"MTG": "MagnetGold",
+ "MTGX": "Montage Token",
"MTH": "Monetha",
"MTHD": "Method Finance",
"MTHN": "MTH Network",
+ "MTIX": "Matrix Token",
"MTK": "Moya Token",
"MTL": "Metal",
"MTLM3": "Metal Music v3",
"MTLX": "Mettalex",
"MTN": "TrackNetToken",
+ "MTO": "Merchant Token",
+ "MTP": "Macro Protocol",
"MTR": "MasterTraderCoin",
+ "MTRA": "MetaRare",
"MTRC": "ModulTrade",
"MTRG": "Meter",
"MTRM": "Materium",
"MTRX": "Metarix",
"MTS": "Metastrike",
"MTSH": "Mitoshi",
+ "MTSP": "Metasphere",
"MTT": "MulTra",
"MTTCOIN": "Money of Tommorow, Today",
"MTV": "MultiVAC",
"MTVT": "Metaverser",
+ "MTW": "Meta Space 2045",
"MTX": "Matryx",
"MTXLT": "Tixl",
"MTY": "Viddli",
"MTZ": "Monetizr",
"MU": "Miracle Universe",
"MUBI": "Multibit",
+ "MUDOL2": "Hero Blaze: Three Kingdoms",
"MUDRA": "MudraCoin",
"MUE": "MonetaryUnit",
"MULTI": "Multichain",
@@ -6260,14 +7627,18 @@
"MUN": "MUNcoin",
"MUNCH": "Munch Token",
"MUNITY": "Metahorse Unity",
+ "MUNK": "Dramatic Chipmunk",
"MURA": "Murasaki",
"MURATIAI": "MuratiAI",
"MUSD": "mStable USD",
"MUSDCOIN": "MUSDcoin",
"MUSE": "Muse DAO",
"MUSIC": "Gala Music",
+ "MUSICAI": "MusicAI",
"MUSICOIN": "Musicoin",
"MUSK": "Musk",
+ "MUSKMEME": "MUSK MEME",
+ "MUSKVSZUCK": "Cage Match",
"MUST": "MUST Protocol",
"MUSTANGC": "MustangCoin",
"MUT": "Mutual Coin",
@@ -6279,14 +7650,19 @@
"MVD": "Metavault",
"MVDG": "MetaVerse Dog",
"MVEDA": "MedicalVeda",
+ "MVERSE": "MindVerse",
+ "MVG": "Mad Viking Games",
"MVI": "Metaverse Index",
"MVL": "MVL",
- "MVP": "MVP Coin",
+ "MVP": "MAGA VP",
+ "MVPC": "MVP Coin",
"MVRS": "Meta MVRS",
"MVU": "meVu",
+ "MVX": "Metavault Trade",
"MW": "MasterWin Coin",
"MWAR": "MemeWars (MWAR)",
"MWAT": "RED MegaWatt",
+ "MWAVE": "MeshWave",
"MWC": "MimbleWimbleCoin",
"MWCC": "Metaworld",
"MX": "MX Token",
@@ -6306,6 +7682,7 @@
"MYDFS": "MyDFS",
"MYID": "My Identity Coin",
"MYL": "MyLottoCoin",
+ "MYLO": "MYLOCAT",
"MYNE": "ITSMYNE",
"MYO": "Mycro",
"MYOBU": "Myōbu",
@@ -6313,6 +7690,7 @@
"MYRIA": "Myria",
"MYRO": "Myro",
"MYRODRAGON": "MYRO DRAGON",
+ "MYROO": "Myro Dog",
"MYROWIF": "MYROWIF",
"MYST": "Mysterium",
"MYT": "Mytrade",
@@ -6320,6 +7698,7 @@
"MYTHTOKEN": "Myth Token",
"MYTV": "MyTVchain",
"MZC": "MazaCoin",
+ "MZERO": "MetaZero",
"MZG": "Moozicore",
"MZK": "Muzika Network",
"MZM": "MetaZooMee",
@@ -6331,9 +7710,13 @@
"N7": "Number7",
"N8V": "NativeCoin",
"NABOX": "Nabox",
+ "NAC": "Nirvana Chain",
+ "NADA": "NADA Protocol Token",
"NAFT": "Nafter",
"NAH": "Strayacoin",
"NAKA": "Nakamoto Games",
+ "NALA": "Not a lion, a...",
+ "NALS": "NALS (Ordinals)",
"NAM": "Namacoin",
"NAME": "PolkaDomain",
"NAMEC": "Name Change Token",
@@ -6344,6 +7727,7 @@
"NANAS": "BananaBits",
"NANJ": "NANJCOIN",
"NANO": "Nano",
+ "NAO": "Nettensor",
"NAOS": "NAOS Finance",
"NAP": "Napoli Fan Token",
"NARCO": "Mr. Narco",
@@ -6352,6 +7736,7 @@
"NASADOGE": "Nasa Doge",
"NASH": "NeoWorld Cash",
"NASSR": "Alnassr FC Fan Token",
+ "NASTR": "Liquid ASTR",
"NAT": "Natmin",
"NATION": "Nation3",
"NAUSICAA": "Nausicaa-Inu",
@@ -6361,12 +7746,17 @@
"NAVI": "Atlas Navi",
"NAVIA": "NaviAddress",
"NAVIB": "Navibration",
+ "NAVX": "NAVI Protocol",
+ "NAVY": "BoatPilot Token",
"NAWA": "Narwhale.finance",
"NAX": "NextDAO",
+ "NAZA": "NAZA",
"NAZAR": "NAZAR PROTOCOL",
+ "NBABSC": "NBA BSC",
"NBAI": "Nebula AI",
"NBAR": "NOBAR",
"NBC": "Niobium",
+ "NBD": "Never Back Down",
"NBIT": "NetBit",
"NBL": "Nobility",
"NBLU": "NuriTopia",
@@ -6381,20 +7771,27 @@
"NCASH": "Nucleus Vision",
"NCC": "NeuroChain",
"NCDT": "Nuco.Cloud",
+ "NCO": "Nexacore",
"NCOP": "NCOP",
+ "NCOR": "NovaCore",
+ "NCORAI": "NeoCortexAI",
"NCOV": "CoronaCoin",
"NCP": "Newton Coin",
"NCR": "Neos Credits",
"NCT": "PolySwarm",
+ "ND": "Nemesis Downfall",
"NDAU": "ndau",
"NDC": "NeverDie",
"NDLC": "NeedleCoin",
"NDN": "NDN Link",
"NDOGE": "NinjaDoge",
"NDR": "Node Runners",
+ "NDS": "NodeStation AI",
"NDX": "Indexed Finance",
+ "NEADRAM": "The Ennead",
"NEAL": "Coineal Token",
"NEAR": "Near",
+ "NEAT": "NEAT",
"NEBL": "Neblio",
"NEBU": "Nebuchadnezzar",
"NEC": "Nectar",
@@ -6403,19 +7800,27 @@
"NEETCOIN": "Neetcoin",
"NEF": "NefariousCoin",
"NEFTIPEDIA": "NEFTiPEDiA",
+ "NEFTY": "NeftyBlocks",
+ "NEGED": "Neged",
"NEI": "Neurashi",
"NEKI": "Neki Token",
"NEKO": "The Neko",
"NEKOIN": "Nekoin",
+ "NEKOS": "Nekocoin",
"NEMO": "NEMO",
"NEMS": "The Nemesis",
"NEO": "NEO",
"NEOG": "NEO Gold",
+ "NEOK": "NEOKingdom DAO",
"NEOM": "New Earth Order Money",
"NEON": "Neon EVM",
+ "NEONAI": "NeonAI",
"NEOS": "NeosCoin",
+ "NEOX": "Neoxa",
"NEPT": "Metanept",
"NERD": "Nerd Bot",
+ "NERDS": "NERDS",
+ "NERF": "Neural Radiance Field",
"NERO": "Nero Token",
"NERVE": "NERVE",
"NESS": "Ness LAB",
@@ -6425,10 +7830,14 @@
"NETC": "NetworkCoin",
"NETCOIN": "Netcoincapital",
"NETKO": "Netko",
+ "NETT": "Netswap",
"NETZ": "MainnetZ",
"NETZ1": "NETZERO",
"NEU": "Neumark",
+ "NEURA": "Neurahub",
+ "NEURAL": "NeuralAI",
"NEURALINK": "Neuralink",
+ "NEURONI": "Neuroni AI",
"NEUROS": "Shockwaves",
"NEUTR": "Neutrinos",
"NEUTRO": "Neutro Protocol",
@@ -6437,32 +7846,44 @@
"NEVER": "neversol",
"NEW": "Newton",
"NEWB": "Newbium",
+ "NEWG": "NewGold",
"NEWM": "NEWM",
"NEWO": "New Order",
"NEWOS": "NewsToken",
"NEWS": "NewsTokens",
"NEWTON": "Newtonium",
"NEX": "Nash Exchange",
+ "NEXA": "Nexa",
"NEXBOX": "NexBox",
"NEXBT": "Native XBTPro Exchange Token",
"NEXM": "Nexum",
+ "NEXMS": "NexMillionaires",
"NEXO": "NEXO",
"NEXT": "Connext Network",
"NEXTEX": "Next.exchange Token",
+ "NEXTEXV1": "Next.exchange Token v1",
+ "NEXUSAI": "NexusAI",
"NEXXO": "Nexxo",
"NEZHA": "NezhaToken",
+ "NFAI": "Not Financial Advice",
"NFCR": "NFCore",
"NFD": "Feisty Doge NFT",
+ "NFE": "Edu3Labs",
"NFN": "Nafen",
"NFP": "NFPrompt",
"NFT": "APENFT",
+ "NFT11": "NFT11",
"NFTART": "NFT Art Finance",
"NFTB": "NFTb",
+ "NFTBS": "NFTBooks",
"NFTD": "NFTrade",
+ "NFTE": "NFTEarthOFT",
"NFTI": "NFT Index",
"NFTL": "NFTLaunch",
"NFTLOOT": "NFTLootBox",
+ "NFTN": "NFTNetwork",
"NFTP": "NFT",
+ "NFTS": "NFT STARS",
"NFTT": "NFT",
"NFTX": "NFTX",
"NFTXHI": "NFTX Hashmasks Index",
@@ -6471,12 +7892,17 @@
"NFUP": "Natural Farm Union Protocol",
"NFXC": "NFX Coin",
"NFY": "Non-Fungible Yearn",
+ "NGA": "NGA Tiger",
"NGC": "NagaCoin",
"NGIN": "Ngin",
"NGL": "Gold Fever",
"NGM": "e-Money",
"NGMI": "NGMI Coin",
"NHCT": "Nano Healthcare Token",
+ "NHI": "Non Human Intelligence",
+ "NHT": "Neighbourhoods",
+ "NIAO": "NIAO",
+ "NIBI": "Nibiru Chain",
"NIC": "NewInvestCoin",
"NICE": "Nice",
"NICEC": "NiceCoin",
@@ -6486,6 +7912,7 @@
"NIHAO": "NiHao",
"NII": "nahmii",
"NIIFI": "NiiFi",
+ "NIK": "NIKPLACE",
"NIM": "Nimiq",
"NIMFA": "Nimfamoney",
"NIN": "Next Innovation",
@@ -6493,10 +7920,14 @@
"NINJAZ": "Danketsu",
"NINKY": "Ninky",
"NINO": "Ninneko",
+ "NINU": "Nvidia Inu",
"NIOB": "Niob Finance",
"NIOCTIB": "nioctiB",
"NIOX": "Autonio",
+ "NIPPY": "Cat On Catnip",
+ "NIRV": "Nirvana NIRV",
"NIT": "Nesten",
+ "NITEFEEDER": "Nitefeeder",
"NITO": "Nitroken",
"NITRO": "Nitro League",
"NITROE": "NitroEX",
@@ -6515,25 +7946,32 @@
"NLS": "Nolus",
"NLX": "Nullex",
"NMB": "Nimbus Coin",
+ "NMBTC": "NanoMeter Bitcoin",
"NMC": "Namecoin",
+ "NMD": "Nexusmind",
"NMH": "Namahe",
"NMK": "Namek",
+ "NMKR": "NMKR",
"NMR": "Numeraire",
"NMS": "Numus",
+ "NMSP": "Nemesis PRO",
"NMT": "NFTMart Token",
"NMX": "Nominex Token",
"NNB": "NNB Token",
"NNC": "NEO Name Credit",
"NNI": "NeoNomad Exchange",
"NNN": "Novem Gold",
+ "NNT": "Nunu Spirits",
"NOA": "NOA PLAY",
"NOAH": "NOAHCOIN",
"NOBL": "NobleCoin",
"NOBS": "No BS Crypto",
+ "NOCHILL": "AVAX HAS NO CHILL",
"NODE": "Whole Network",
"NODIS": "Nodis",
"NODL": "Nodle Network",
"NOIA": "Syntropy",
+ "NOIS": "Nois Network",
"NOIZ": "NOIZ",
"NOKA": "Noka Solana AI",
"NOKU": "NOKU Master token",
@@ -6545,8 +7983,10 @@
"NOR": "Noir",
"NORA": "SnowCrash Token",
"NORD": "Nord Finance",
+ "NORMIE": "Normie",
"NOS": "Nosana",
"NOSN": "nOS",
+ "NOSO": "Noso",
"NOTE": "Notional Finance",
"NOTHING": "NOTHING",
"NOV": "Novara Calcio Fan Token",
@@ -6557,7 +7997,9 @@
"NPAS": "New Paradigm Assets Solution",
"NPC": "NPCcoin",
"NPER": "NPER",
+ "NPICK": "NPICK BLOCK",
"NPLC": "Plus Coin",
+ "NPM": "Neptune Mutual",
"NPT": "Neopin",
"NPX": "Napoleon X",
"NPXS": "Pundi X",
@@ -6565,6 +8007,7 @@
"NR1.BITCI": "Number 1 Token",
"NRB": "NoirBits",
"NRC": "Neurocoin",
+ "NRCH": "EnreachDAO",
"NRFB": "NuriFootBall",
"NRG": "Energi",
"NRGY": "NRGY Defi",
@@ -6577,12 +8020,16 @@
"NRV": "Nerve Finance",
"NRVE": "Narrative",
"NRX": "Neironix",
+ "NS": "NodeSynapse",
"NS2DRP": "New Silver Series 2 DROP",
"NSBT": "Neutrino Token",
"NSD": "Nasdacoin",
"NSDX": "NASDEX",
"NSFW": "xxxNifty",
+ "NSH": "NOSHIT",
+ "NSI": "nSights DeFi Trader",
"NSK": "NSKSwap",
+ "NSO": "NeverSurrenderOne's",
"NSP": "NOMAD.space",
"NSR": "NuShares",
"NSS": "NSS Coin",
@@ -6594,6 +8041,7 @@
"NTBC": "Note Blockchain",
"NTC": "NineElevenTruthCoin",
"NTCC": "NeptuneClassic",
+ "NTD": "Neural Tensor Dynamics",
"NTG": "NEWTOWNGAMING",
"NTK": "Neurotoken",
"NTM": "NetM",
@@ -6607,17 +8055,23 @@
"NTY": "Nexty",
"NU": "NuCypher",
"NUA": "Neulaut Token",
+ "NUB": " nubcat",
"NUBIS": "NubisCoin",
+ "NUC": "NuCoin",
"NUDE": "0xNude",
+ "NUDES": "NUDES",
"NUKE": "NukeCoin",
"NULS": "Nuls",
"NUM": "Numbers Protocol",
"NUMBERS": "NumbersCoin",
"NUMI": "Numitor",
+ "NUR": "Nurcoin",
+ "NUSA": "Nusa",
"NUSD": "Nomin USD",
"NUT": "Native Utility Token",
"NUTGV2": "NUTGAIN",
"NUTS": "Squirrel Finance",
+ "NUUM": "MNet",
"NUX": "Peanut",
"NVA": "Neeva Defi",
"NVC": "NovaCoin",
@@ -6634,8 +8088,10 @@
"NWC": "Newscrypto Coin",
"NWCN": "NowCoin",
"NWP": "NWPSolution",
+ "NWS": "Nodewaves",
"NXC": "Nexium",
"NXD": "Nexus Dubai",
+ "NXDT": "NXD Next",
"NXE": "NXEcoin",
"NXM": "Nexus Mutual",
"NXMC": "NextMindCoin",
@@ -6662,12 +8118,19 @@
"NZE": "Nagezeni",
"NZL": "Zealium",
"NZO": "NonZero",
+ "O": "Childhoods End",
"O3": "O3 Swap",
+ "O4DX": "O4DX",
"OAK": "Acorn Collective",
+ "OAS": "Oasis City",
"OASC": "Oasis City",
+ "OASIS": "Oasis",
+ "OAT": "OAT Network",
"OATH": "OATH Protocol",
"OAX": "Oax",
+ "OBEMA": "burek obema",
"OBI": "Orbofi AI",
+ "OBICOIN": "OBI Real Estate",
"OBITS": "Obits Coin",
"OBOT": "Obortech",
"OBROK": "OBRok",
@@ -6675,53 +8138,69 @@
"OBSCURE": "Obscurebay",
"OBSR": "OBSERVER Coin",
"OBT": "Oobit",
+ "OBTC": "Obitan Chain",
"OBX": "OpenBlox",
"OC": "OrangeCoin",
"OCAI": "Onchain AI",
"OCAVU": "Ocavu Network Token",
"OCB": "BLOCKMAX",
"OCC": "OccamFi",
+ "OCD": "On-Chain Dynamics",
"OCE": "OceanEX Token",
"OCEAN": "Ocean Protocol",
"OCEANT": "Poseidon Foundation",
+ "OCH": "Orchai",
"OCICAT": "OciCat",
"OCL": "Oceanlab",
"OCN": "Odyssey",
+ "OCP": "Omni Consumer Protocols",
"OCT": "Octopus Network",
"OCTA": "OctaSpace",
"OCTAGON": "POLYDeFI",
+ "OCTAVUS": "Octavus Prime",
"OCTAX": "OctaX",
"OCTI": "Oction",
"OCTO": "OctoFi",
"OCTOC": "OctoCoin",
"OCTOIN": "Octoin Coin",
+ "OCW": "Online Cold Wallet",
"OCX": "Original Crypto Coin",
"ODC": "Overseas Direct Certification",
"ODDZ": "Oddz",
"ODE": "ODEM",
+ "ODGN": "OrdiGen",
"ODIN": "Odin Protocol",
"ODMC": "ODMCoin",
"ODN": "Obsidian",
"ODNT": "Old Dogs New Tricks",
"ODS": "Odesis",
"ODX": "ODX Token",
+ "ODYS": "OdysseyWallet",
"OF": "OFCOIN",
"OFBC": "OneFinBank Coin",
"OFC": "$OFC Coin",
"OFCR": "CryptoPolice",
+ "OFE": "Ofero",
"OFN": "Openfabric AI",
"OG": "OG Fan Token",
+ "OGCINU": "The OG Cheems Inu",
+ "OGD": "OLYMPIC GAMES DOGE",
"OGGY": "Oggy Inu",
"OGN": "Origin Protocol",
"OGO": "Origo",
"OGOD": "GOTOGOD",
+ "OGPU": "OPEN GPU",
+ "OGSM": "OGSMINEM",
"OGSP": "OriginSport",
"OGT": "One Game",
"OGV": "Origin Dollar Governance",
+ "OGY": "ORIGYN",
"OGZ": "OGzClub",
"OH": "Oh! Finance",
+ "OHANDY": "Orbit Bridge Klaytn Handy",
"OHM": "Olympus",
"OHMV2": "Olympus v2",
+ "OHO": "OHO",
"OICOIN": "Osmium Investment Coin",
"OIL": "Oiler",
"OILD": "OilWellCoin",
@@ -6742,6 +8221,7 @@
"OLAS": "Autonolas",
"OLDSF": "OldSafeCoin",
"OLE": "OpenLeverage",
+ "OLEA": "Olea Token",
"OLIVE": "Olive",
"OLOID": "OLOID",
"OLT": "OneLedger",
@@ -6753,15 +8233,23 @@
"OMA": "OmegaCoin",
"OMAX": "Omax",
"OMC": "Omchain",
+ "OMD": "OneMillionDollars",
+ "OME": "o-mee",
"OMEGA": "OMEGA",
"OMG": "OMG Network",
"OMGC": "OmiseGO Classic",
"OMI": "ECOMI",
"OMIC": "Omicron",
+ "OMIKAMI": "Amaterasu Omikami",
"OMMI": "Ommniverse",
"OMNI": "Omni",
"OMNIA": "OmniaVerse",
"OMNICRON": "OmniCron",
+ "OMNINET": "Omni Network",
+ "OMNIR": "Omni Real Estate Token",
+ "OMNIX": "OmniBotX",
+ "OMNOM": "Doge Eat Doge",
+ "OMNOMN": "Omega Network",
"OMT": "Mars Token",
"OMV1": "OM Token (v1)",
"OMX": "Project Shivom",
@@ -6781,6 +8269,7 @@
"ONLINE": "Onlinebase",
"ONLY": "OnlyCam",
"ONLYCUMIES": "OnlyCumies",
+ "ONNO": "Onno Vault",
"ONOT": "ONO",
"ONS": "One Share",
"ONSTON": "Onston",
@@ -6790,15 +8279,20 @@
"OOE": "OpenOcean",
"OOGI": "OOGI",
"OOKI": "Ooki",
+ "OOKS": "Onooks",
"OORC": "Orbit Bridge Klaytn Orbit Chain",
+ "OORT": "OORT",
"OOT": "Utrum",
"OOW": "OPP Open WiFi",
"OP": "Optimism",
"OPA": "Option Panda Platform",
"OPAIG": "OvalPixel",
"OPC": "OP Coin",
+ "OPCAT": "OPCAT",
"OPCT": "Opacity",
"OPEN": "Open Platform",
+ "OPENAI": "OpenAI ERC",
+ "OPENCHAT": "OpenChat",
"OPENDAO": "OpenDAO",
"OPENGO": "OPEN Governance Token",
"OPENRI": "Open Rights Exchange",
@@ -6808,7 +8302,10 @@
"OPET": "ÕpetFoundation",
"OPEX": "Optherium Token",
"OPHX": "Operation Phoenix",
+ "OPINU": "Optimus Inu",
"OPIUM": "Opium",
+ "OPMND": "Open Mind Network",
+ "OPN": "Open Source Network",
"OPNN": "Opennity",
"OPP": "Opporty",
"OPS": "Octopus Protocol",
@@ -6818,28 +8315,38 @@
"OPTC": "Open Predict Token",
"OPTCM": "Optimus",
"OPTI": "Optimus AI",
+ "OPTIG": "Catgirl Optimus",
"OPTIMOUSE": "Optimouse",
"OPTION": "OptionCoin",
"OPU": "Opu Coin",
"OPUL": "Opulous",
"OPV": "OpenLive NFT",
+ "OPXVEVELO": "OpenX Locked Velo",
+ "ORACLE": "Oracle AI",
"ORACLECHAIN": "OracleChain",
"ORAI": "Oraichain Token",
+ "ORAIX": "OraiDEX",
"ORAO": "ORAO Network",
"ORARE": "OneRare",
"ORB": "KlayCity ORB",
"ORBIS": "Orbis",
+ "ORBIT": "Orbit Protocol",
"ORBITCOIN": "Orbitcoin",
+ "ORBK": "Ordibank",
"ORBR": "Orbler",
"ORBS": "Orbs",
+ "ORBT": "Orbitt Pro",
"ORC": "Orbit Chain",
"ORCA": "Orca",
+ "ORD": "ordinex",
"ORDI": "Ordinals ",
+ "ORDI2": "ORDI 2.0",
"ORDIFI": "OrdinalsFi",
"ORDS": "Ordiswap",
"ORE": "Galactrum",
"OREO": "OreoFi",
"ORET": "ORET Token",
+ "ORFY": "Ordify",
"ORGA": "Organicco",
"ORGT": "Organic Token",
"ORI": "Origami",
@@ -6856,7 +8363,6 @@
"OROP": "ORO",
"OROX": "Cointorox",
"ORS": "ORS Group",
- "ORT": "Omni Real Estate Token",
"ORV": "Orvium",
"ORYX": "OryxCoin",
"OS": "Ethereans",
@@ -6864,28 +8370,39 @@
"OSA": "OSA Token",
"OSAK": "Osaka Protocol",
"OSC": "iOscar",
+ "OSEA": "Omnisea",
+ "OSEAN": "OSEAN",
+ "OSETH": "StakeWise Staked ETH",
"OSF": "One Solution",
"OSHI": "Oshi Token",
+ "OSIS": "OSIS",
+ "OSK": "OSK",
+ "OSL": "OSL AI",
"OSMO": "Osmosis",
"OSQTH": "Opyn Squeeth",
"OSS": "OSSChain",
"OST": "OST",
"OSWAP": "OpenSwap",
"OT": "Onchain Trade",
+ "OTB": "OTCBTC Token",
"OTHR": "OtherDAO",
"OTK": "Octokn",
"OTN": "Open Trading Network",
"OTO": "OTOCASH",
"OTSEA": "OTSea",
+ "OTT": "Coost",
+ "OTTERSPACE": "Otter Space",
"OTX": "Octanox",
"OUCHI": "OUCHI",
"OUD": "OUD",
"OUR": "Our Pay",
"OUSD": "Origin Dollar",
"OUSDC": "Orbit Bridge Klaytn USDC",
+ "OUSE": "OUSE Token",
"OUT": "Netscouters",
"OVC": "OVCODE",
"OVERLORD": "Overlord",
+ "OVN": "Overnight",
"OVO": "Ovato",
"OVR": "Ovr",
"OWC": "Oduwa",
@@ -6894,11 +8411,14 @@
"OWN": "Ownly",
"OWNDATA": "OWNDATA",
"OX": "Open Exchange Token",
+ "OXAI": "OxAI.com",
"OXB": "Oxbull Tech",
"OXBT": "OXBT (Ordinals)",
"OXD": "0xDAO",
"OXEN": "Oxen",
"OXM": "OXM Protocol",
+ "OXN": "0xNumber",
+ "OXO": "OXO Network",
"OXS": "0xS",
"OXT": "Orchid Protocol",
"OXY": "Oxygen",
@@ -6907,43 +8427,61 @@
"OYS": "Oyster Platform",
"OZG": "Ozagold",
"OZK": "OrdiZK",
+ "OZMPC": "Ozempic",
"OZO": "Ozone Chain",
"OZONE": "Ozone metaverse",
"OZP": "OZAPHYRE",
"P202": "Project 202",
"P2PS": "P2P Solutions Foundation",
+ "P3D": "3DPass",
+ "P404": "Potion 404",
"PAAL": "PAAL AI",
+ "PAALV1": "PAAL AI v1",
+ "PABLO": "PABLO DEFI",
"PAC": "PAC Protocol",
"PACE": "3space Art",
+ "PACM": "Pacman Blastoff",
"PACMAN": "Pac Man",
"PACOCA": "Pacoca",
"PACT": "impactMarket",
"PAD": "NearPad",
"PAF": "Pacific",
+ "PAGE": "Page",
"PAI": "Project Pai",
"PAID": "PAID Network",
"PAINT": "MurAll",
+ "PAIRED": "PairedWorld",
+ "PAJAMAS": "The First Youtube Cat",
"PAK": "Pakcoin",
"PAL": "PolicyPal Network",
+ "PALAI": "PaladinAI",
"PALET": "Palette",
+ "PALG": "PalGold",
"PALLA": "Pallapay",
"PALM": "PalmPay",
+ "PALMY": "Palmy",
"PAM": "PAM",
"PAMP": "PAMP Network",
"PAN": "Pantos",
"PAND": "Panda Finance",
"PANDA": "PandaDAO",
+ "PANDAI": "PandAI",
"PANDO": "Pando",
"PANDOP": "PandoProject",
"PANDORA": "Pandora",
"PANGEA": "PANGEA",
+ "PANIC": "PanicSwap",
+ "PANO": "PanoVerse",
+ "PAPA": "Papa Bear",
"PAPADOGE": "Papa Doge",
"PAPER": "Dope Wars Paper",
"PAPI": "Papi",
+ "PAPPAY": "PAPPAY",
"PAPUSHA": "Papusha",
"PAR": "Parachute",
"PARA": "Paralink Network",
"PARAB": "Parabolic",
+ "PARADOX": "The Paradox Metaverse",
"PARAL": "Parallel",
"PARALL": "Parallel Finance",
"PARANOIA": "ParanoiaCoin",
@@ -6958,12 +8496,18 @@
"PART": "Particl",
"PAS": "Passive Coin",
"PASC": "Pascal Coin",
+ "PASG": "Passage",
"PASL": "Pascal Lite",
"PASS": "Blockpass",
"PAT": "PATRON",
+ "PATEK": "Silly Patek",
+ "PATEX": "Patex",
"PATH": "PathDAO",
+ "PAVIA": "Pavia",
"PAVO": "Pavocoin",
+ "PAW": "PAWSWAP",
"PAWS": "PawStars",
+ "PAWSTA": "dogeatingpasta",
"PAWTH": "Pawthereum",
"PAXEX": "PAXEX",
"PAXG": "PAX Gold",
@@ -6977,10 +8521,13 @@
"PAYS": "Payslink",
"PAYT": "PayAccept",
"PAYU": "Platform of meme coins",
+ "PAYX": "Paypex",
"PAZZI": "Paparazzi",
+ "PBAR": "Pangolin Hedera",
"PBASE": "Polkabase",
"PBC": "PabyosiCoin",
"PBET": "PBET",
+ "PBIRB": "Parrotly",
"PBL": "Pebbles",
"PBLK": "PayBlock",
"PBQ": "PUBLIQ",
@@ -6988,6 +8535,7 @@
"PBRV1": "PolkaBridge v1",
"PBT": "Primalbase",
"PBTC35A": "pBTC35A",
+ "PBUX": "Playbux",
"PBX": "Probinex",
"PBXV1": "Probinex v1",
"PC": "Promotion Coin",
@@ -7008,8 +8556,10 @@
"PCSP": "GenomicDao G-Stroke",
"PCX": "ChainX",
"PD": "PUDEL",
+ "PDA": "PlayDapp",
"PDATA": "PDATA",
"PDC": "Project Decorum",
+ "PDD": "PDDOLLAR",
"PDEX": "Polkadex",
"PDF": "Port of DeFi Network",
"PDOG": "Polkadog",
@@ -7018,75 +8568,104 @@
"PDT": "ParagonsDAO",
"PDX": "PDX Coin",
"PEA": "Pea Farm",
+ "PEACH": "Based Peaches",
"PEACHY": "Peachy",
"PEAK": "PEAKDEFI",
+ "PEAR": "Pear Swap",
"PEARL": "Pearl Finance",
"PEAS": "Peapods Finance",
"PEC": "PeaceCoin",
+ "PECL": "PECland",
"PEEL": "Meta Apes",
+ "PEEP": "Peepo",
"PEEPA": "Peepa",
"PEEPO": "PEEPO",
"PEEPS": "The People’s Coin",
+ "PEEZY": "Young Peezy AKA Pepe",
"PEFI": "Penguin Finance",
"PEG": "PegNet",
"PEGS": "PegShares",
"PEIPEI": "PEIPEI",
+ "PEKA": "PEKA",
"PEKC": "Peacock Coin",
+ "PEKO": "Pepe Neko",
"PEL": "Propel Token",
"PEM": "Pembrock",
"PENC": "PenCoin",
"PENDLE": "Pendle",
"PENG": "PENG",
"PENGYX": "PengyX",
+ "PENIS": "PenisGrow",
"PENTA": "Penta",
"PEOPLE": "ConstitutionDAO",
"PEOS": "pEOS",
+ "PEPA": "Pepa Inu",
"PEPC": "Pepe Classic",
"PEPE": "Pepe",
- "PEPE20": "Pepe 2.0",
+ "PEPE2": "Pepe 2.0",
+ "PEPE20V1": "Pepe 2.0 v1",
"PEPEAI": "Pepe Analytics",
"PEPEARMY": "PEPEARMY",
+ "PEPEBNB": "Pepe The Frog",
"PEPEBRC": "PEPE (Ordinals)",
"PEPEBURN": "Pepeburn",
"PEPECASH": "Pepe Cash",
+ "PEPECAT": "PEPE CAT",
"PEPECEO": "REAL PEPE CEO",
+ "PEPECHAIN": "PEPE Chain",
+ "PEPECOIN": "PepeCoin",
"PEPED": "PepeDAO Coin",
"PEPEDAO": "PEPE DAO",
"PEPEDERP": "PepeDerp",
+ "PEPEE": "Pepe the pepe",
"PEPEF": "PEPEFLOKI",
+ "PEPEFLOKI": "PEPE FLOKI",
"PEPEGA": "Pepe GEM AI",
"PEPEGAINS": "PepeGains",
"PEPEGRINCH": "Pepe Grinch",
"PEPEINU": "PEPE inu",
"PEPEKING": "PEPEKING",
+ "PEPELON": "Pepelon",
"PEPEMO": "PepeMo",
+ "PEPEMOON": "PEPEMOON",
"PEPEPI": "PEPEPi",
"PEPERA": "PEPERA",
+ "PEPESORA": "Pepe Sora AI",
+ "PEPEW": "PEPEPOW",
+ "PEPEWIFHAT": "Pepewifhat",
"PEPEX": "pepeX",
"PEPEZILLA": "PEPEZilla",
+ "PEPI": "PEPI",
"PEPPA": "PEPPA",
"PEPPER": "Pepper Token",
"PEPS": "PEPS Coin",
"PEPURAI": "PEPURAI",
"PEPVERS": "PepVerse",
+ "PEPY": "Pepy",
+ "PER": "Perproject",
"PERA": "Pera Finance",
"PERC": "Perion",
"PERI": "PERI Finance",
"PERL": "PERL.eco",
"PERMIAN": "Permian",
"PERP": "Perpetual Protocol",
+ "PERRY": "Perry The BNB",
"PERU": "PeruCoin",
"PERX": "PeerEx Network",
"PESA": "Credible",
"PESOBIT": "PesoBit",
"PET": "Hello Pets",
+ "PETF": "PEPE ETF",
"PETG": "Pet Games",
+ "PETH": "pETH",
"PETL": "Petlife",
"PETN": "Pylon Eco Token",
"PETO": "Petoverse",
"PETS": "PolkaPets",
"PETT": "Pett Network",
+ "PEUSD": "peg-eUSD",
"PEX": "Pexcoin",
+ "PFI": "PrimeFinance",
"PFID": "Pofid Dao",
"PFL": "Professional Fighters League Fan Token",
"PFR": "PayFair",
@@ -7095,6 +8674,7 @@
"PG": "Pepe Grow",
"PGALA": "pGALA",
"PGC": "Pegascoin",
+ "PGEN": "Polygen",
"PGF7T": "PGF500",
"PGL": "Prospectors",
"PGN": "Pigeoncoin",
@@ -7107,6 +8687,7 @@
"PHA": "Phala Network",
"PHAE": "Phaeton",
"PHALA": "Phalanx",
+ "PHAUNTEM": "Phauntem",
"PHB": "Phoenix Global [v2]",
"PHBD": "Polygon HBD",
"PHC": "Profit Hunters Coin",
@@ -7130,22 +8711,32 @@
"PHV": "PATHHIVE",
"PHX": "Phoenix Finance",
"PI": "Plian",
+ "PIA": "Olympia AI",
"PIAS": "PIAS",
"PIB": "Pibble",
"PICA": "PicaArtMoney",
"PICKLE": "Pickle Finance",
"PICO": "PicoGo",
"PIE": "Persistent Information Exchange",
+ "PIF": "Pepe Wif Hat",
"PIG": "Pig Finance",
+ "PIGE": "Pige",
+ "PIGEON": "Pigeon In Yellow Boots",
"PIGGY": "Piggy",
"PIGGYCOIN": "Piggy Coin",
+ "PIGONK": "PIGONK",
+ "PIGS": "Elon Vitalik Pigs",
+ "PIIN": "piin (Ordinals)",
"PIKA": "Pikaboss",
"PIKACHU": "Pikachu Inu",
+ "PIKO": "Pinnako",
"PILOT": "Unipilot",
"PIN": "Pin",
"PINCHI": "Da Pinchi",
+ "PINE": "Pine",
"PING": "CryptoPing",
"PINK": "PinkCoin",
+ "PINKSALE": "PinkSale",
"PINKX": "PantherCoin",
"PINMO": "Pinmo",
"PINO": "Pinocchu",
@@ -7157,12 +8748,15 @@
"PIPL": "PiplCoin",
"PIPT": "Power Index Pool Token",
"PIRATE": "PirateCash",
+ "PIRATECOIN": "Pirate Coin Games",
+ "PIRB": "PIRB",
"PIRI": "Pirichain",
"PIRL": "Pirl",
"PIS": "Polkainsure Finance",
"PIST": "Pist Trust",
"PIT": "Pitbull",
"PITCH": "PITCH",
+ "PIVN": "PIVN",
"PIVX": "Private Instant Verified Transaction",
"PIX": "Lampix",
"PIXEL": "Pixels",
@@ -7175,6 +8769,7 @@
"PKC": "Pikciochain",
"PKD": "PetKingdom",
"PKF": "PolkaFoundry",
+ "PKG": "PKG Token",
"PKN": "Poken",
"PKOIN": "Pocketcoin",
"PKT": "PKT",
@@ -7184,7 +8779,8 @@
"PLACE": "PlaceWar Governance",
"PLAI": "Plair",
"PLAN": "Plancoin",
- "PLANET": "PlanetCoin",
+ "PLANE": "Paper Plane",
+ "PLANETCOIN": "PlanetCoin",
"PLANETS": "PlanetWatch",
"PLASTIK": "Plastiks",
"PLAT": "BitGuild PLAT",
@@ -7195,12 +8791,17 @@
"PLAYC": "PlayChip",
"PLAYCOIN": "PlayCoin",
"PLAYKEY": "Playkey",
+ "PLB": "Paladeum",
"PLBT": "Polybius",
"PLC": "PlusCoin",
"PLCU": "PLC Ultima",
+ "PLCUC": "PLC Ultima Classic",
"PLD": "Plutonian DAO",
"PLE": "Plethori",
+ "PLEB": "PLEBToken",
+ "PLENTY": "Plenty DeFi",
"PLEO": "Empleos",
+ "PLERF": "Plerf",
"PLEX": "PLEX",
"PLF": "PlayFuel",
"PLG": "Pledgecamp",
@@ -7215,6 +8816,7 @@
"PLR": "Pillar",
"PLS": "Pulsechain",
"PLSARB": "Plutus ARB",
+ "PLSB": "PulseBitcoin",
"PLSD": "PulseDogecoin",
"PLSPAD": "PulsePad",
"PLSRDNT": "Plutus RDNT",
@@ -7232,14 +8834,18 @@
"PLX": "PlexCoin",
"PLXY": "Plxyer",
"PLY": "Aurigami",
+ "PLZ": "PLUNZ",
"PMA": "PumaPay",
"PME": "DogePome",
"PMEER": "Qitmeer",
"PMG": "Pomerium Ecosystem Token",
"PMGT": "Perth Mint Gold Token",
+ "PMM": "Perpetual Motion Machine",
"PMNT": "Paymon",
"PMON": "Polkamon",
+ "PMOON": "Pookimoon",
"PMPY": "Prometheum Prodigy",
+ "PMR": "Pomerium Utility Token",
"PMTN": "Peer Mountain",
"PNC": "PlatiniumCoin",
"PND": "PandaCoin",
@@ -7248,6 +8854,7 @@
"PNFT": "Pawn My NFT",
"PNG": "Pangolin",
"PNGN": "SpacePenguin",
+ "PNIC": "Phoenic",
"PNK": "Kleros",
"PNL": "True PNL",
"PNODE": "Pinknode",
@@ -7255,20 +8862,27 @@
"PNX": "PhantomX",
"PNY": "Peony Coin",
"POA": "Poa Network",
+ "POAI": "Port AI",
"POC": "POC Blockchain",
"POCC": "POC Chain",
"POCKET": "XPocket",
"POCO": "Pocoland",
"POD": "Podo Point",
"PODIUM": "Smart League",
+ "PODO": "Power Of Deep Ocean",
"POE": "Po.et",
"POG": "PolygonumOnline",
"POGAI": "POGAI",
+ "POGS": "POG",
"POINTS": "Cryptsy Points",
"POK": "Pokmonsters",
+ "POKEGROK": "PokeGROK",
"POKEM": "Pokemonio",
"POKEMON": "Pokemon",
"POKER": "PokerCoin",
+ "POKERFI": "PokerFi",
+ "POKKY": "Pokky Cat",
+ "POKO": "POKOMON",
"POKT": "Pocket Network",
"POL": "Polygon Ecosystem Token",
"POLA": "Polaris Share",
@@ -7285,36 +8899,50 @@
"POLVEN": "Polka Ventures",
"POLX": "Polylastic",
"POLY": "Polymath Network",
+ "POLYCUB": "PolyCub",
"POLYDOGE": "PolyDoge",
"POLYPAD": "PolyPad",
"POLYX": "Polymesh",
+ "POM": "Proof Of Memes",
"PON": "Ponder",
+ "PONCHO": "Poncho",
"POND": "Marlin",
+ "PONGO": "Pongo",
"PONKE": "Ponke",
+ "PONKEBNB": "Ponke BNB",
"PONYO": "Ponyo Impact",
+ "PONZI": "Ponzi",
"PONZU": "Ponzu Inu",
"POO": "POOMOON",
"POOCOIN": "PooCoin",
"POODL": "Poodl",
+ "POODOGE": "Poo Doge",
"POOH": "POOH",
"POOL": "PoolTogether",
"POOLX": "Poolz Finance",
"POOLXT": "Pool-X",
"POOLZ": "Poolz Finance",
+ "POOP": "Poopsicle",
+ "POOWEL": "Joram Poowel",
"POP": "PopularCoin",
"POP!": "POP",
"POPC": "PopChest",
"POPCAT": "Popcat",
+ "POPDOG": "PopDog",
"POPE": "Popecoin",
"POPK": "POPKON",
"POPO": "popo",
"POPSICLE": "Popsicle Finance",
"POR": "Portugal National Team Fan Token",
+ "PORA": "PORA AI",
"PORK": "PepeFork",
+ "PORKE": "PONKE FORK",
+ "PORKINU": "PepeFork INU",
"PORNROCKET": "PornRocket",
"PORT": "Port Finance",
"PORT3": "Port3 Network",
"PORTAL": "Portal",
+ "PORTALTOKEN": "Portal",
"PORTO": "FC Porto",
"PORTU": "Portuma",
"PORTX": "ChainPort",
@@ -7325,12 +8953,16 @@
"POSS": "Posschain",
"POST": "InterPlanetary Search Engine",
"POSTC": "PostCoin",
+ "POSW": "PoSW Coin",
"POT": "PotCoin",
+ "POTATO": "Potato",
"POTS": "Moonpot",
"POTTER": "POTTER",
+ "POU": "Pou",
"POWELL": "Jerome Powell",
"POWER": "UniPower",
"POWR": "Power Ledger",
+ "POWSCHE": "Powsche",
"PP": "ProducePay Chain",
"PPAD": "PlayPad",
"PPALPHA": "Phoenix Protocol",
@@ -7340,6 +8972,7 @@
"PPI": "Primpy",
"PPIZZA": "P Pizza",
"PPL": "Pink Panther Lovers",
+ "PPM": "Punk Panda Messenger",
"PPN": "Puppies Network",
"PPOVR": "POVR",
"PPP": "PayPie",
@@ -7350,12 +8983,17 @@
"PQT": "Prediqt",
"PRA": "ProChain",
"PRARE": "Polkarare",
+ "PRB": "Paribu Net",
"PRC": "ProsperCoin",
+ "PRCH": "Power Cash",
+ "PRCL": "Parcl",
"PRCM": "Precium",
"PRCY": "PRivaCY Coin",
"PRDS": "Brise Paradise",
"PRDX": "ParamountDax Token",
"PRE": "Presearch",
+ "PREAI": "Predict Crypto",
+ "PRED": "Predictcoin",
"PREM": "Premium",
"PREME": "PREME Token",
"PREMIA": "Premia",
@@ -7366,6 +9004,7 @@
"PRI": "PRIVATEUM INITIATIVE",
"PRIA": "PRIA",
"PRIDE": "Nomad Exiles",
+ "PRIMAL": "PRIMAL",
"PRIMATE": "Primate",
"PRIME": "Echelon Prime",
"PRIMECHAIN": "PrimeChain",
@@ -7388,6 +9027,7 @@
"PROOF": "PROVER",
"PROP": "Propeller",
"PROPC": "Propchain",
+ "PROPHET": "PROPHET",
"PROPS": "Props",
"PROS": "Prosper",
"PROT": "PROT",
@@ -7402,6 +9042,7 @@
"PRQ": "PARSIQ",
"PRS": "PressOne",
"PRT": "Parrot Protocol",
+ "PRTC": "Protectorate Protocol",
"PRTG": "Pre-Retogeum",
"PRV": "PrivacySwap",
"PRVC": "PrivaCoin",
@@ -7409,6 +9050,8 @@
"PRX": "Parex",
"PRXY": "Proxy",
"PRY": "PRIMARY",
+ "PRZS": "Perezoso",
+ "PS1": "POLYSPORTS",
"PSB": "Planet Sandbox",
"PSC": "PSC Token",
"PSD": "Poseidon",
@@ -7423,6 +9066,8 @@
"PSM": "Prasm",
"PSOL": "Parasol Finance",
"PSP": "ParaSwap",
+ "PSPS": "BobaCat",
+ "PSSYMONSTR": "PSSYMONSTR",
"PST": "Primas",
"PSTAKE": "pSTAKE Finance",
"PSTN": "Piston",
@@ -7448,32 +9093,51 @@
"PTT": "Pink Taxi Token",
"PTU": "Pintu Token",
"PTX": "PlatinX",
+ "PUCA": "Puss Cat",
+ "PUFETH": "pufETH",
+ "PUFF": "Puff",
+ "PUFFIN": "Puffin Global",
+ "PUGAI": "PUG AI",
"PUGL": "PugLife",
"PULI": "Puli",
"PULSE": "Pulse",
+ "PUMA": "Puma",
"PUMBAA": "Pumbaa",
"PUMLX": "PUMLx",
+ "PUMP": "PUMP",
+ "PUN": "Punkko",
+ "PUNCH": "PUNCHWORD",
"PUNDIX": "Pundi X",
+ "PUNDU": "Pundu",
"PUNK": "SteamPunk",
+ "PUNKAI": "PunkAI",
"PUPA": "PupaCoin",
"PUPPETS": "Puppets Coin",
+ "PUPPIES": "I love puppies",
+ "PUPS": "PUPS (Ordinals)",
"PURA": "Pura",
"PURE": "Puriever",
"PUREALT": "Pure",
+ "PURR": "SpartaCats",
"PURSE": "Pundi X PURSE",
"PUSD": "PegsUSD",
"PUSH": "Ethereum Push Notification Service",
"PUSHI": "Pushi",
"PUSSY": "Pussy Financial",
+ "PUSSYINBIO": "Pussy In Bio",
"PUT": "PutinCoin",
"PUX": "pukkamex",
+ "PVC": "PVC Meta",
"PVFYBO": "JRVGCUPVSC",
"PVP": "PVPChain",
"PVT": "Pivot Token",
"PVU": "Plant vs Undead Token",
"PWAR": "PolkaWar",
+ "PWH": "pepewifhat",
+ "PWINGS": "JetSwap pWings",
"PWON": "Personal Wager",
"PWR": "PWR Coin",
+ "PWT": "PANDAINU",
"PX": "PXcoin",
"PXB": "PixelBit",
"PXC": "PhoenixCoin",
@@ -7484,6 +9148,7 @@
"PXT": "Pixer Eternity",
"PYC": "PayCoin",
"PYE": "CreamPYE",
+ "PYI": "PYRIN",
"PYLNT": "Pylon Network",
"PYLON": "Pylon Finance",
"PYM": "Playermon",
@@ -7493,8 +9158,10 @@
"PYQ": "PolyQuity",
"PYR": "Vulcan Forged",
"PYRAM": "Pyram Token",
+ "PYRAMID": "Pyramid",
"PYRK": "Pyrk",
"PYRO": "PYRO Network",
+ "PYRV1": "Vulcan Forged v1",
"PYT": "Payther",
"PYTH": "Pyth Network",
"PYUSD": "PayPal USD",
@@ -7505,6 +9172,7 @@
"Q2C": "QubitCoin",
"QA": "Quantum Assets",
"QAC": "Quasarcoin",
+ "QAI": "QuantixAI",
"QANX": "QANplatform",
"QARK": "QANplatform",
"QASH": "Quoine Liquid",
@@ -7523,6 +9191,7 @@
"QCO": "Qravity",
"QCX": "QuickX Protocol",
"QDC": "Quadrillion Coin",
+ "QDROP": "QuizDrop",
"QDT": "QCHAIN",
"QDX": "Quidax",
"QFI": "QFinance",
@@ -7542,6 +9211,7 @@
"QOM": "Shiba Predator",
"QOOB": "QOOBER",
"QORA": "QoraCoin",
+ "QORPO": "QORPO WORLD",
"QQBC": "QQBC IPFS BLOCKCHAIN",
"QQQ": "Poseidon Network",
"QQQF": "Standard Crypto Fund",
@@ -7549,11 +9219,13 @@
"QRDO": "Qredo",
"QRK": "QuarkCoin",
"QRL": "Quantum Resistant Ledger",
+ "QRO": "Querio",
"QRP": "Cryptics",
"QRT": "Qrkita Token",
"QRX": "QuiverX",
"QSLV": "Quicksilver coin",
"QSP": "Quantstamp",
+ "QSR": "Quasar",
"QTC": "Qitcoin",
"QTCON": "Quiztok",
"QTF": "Quantfury",
@@ -7570,27 +9242,35 @@
"QUASA": "Quasacoin",
"QUB": "Qubism",
"QUBE": "Qube",
+ "QUBIC": "Qubic",
"QUBITICA": "Qubitica",
+ "QUEEN": "Queen of Engrand",
"QUICK": "Quickswap",
"QUICKOLD": "Quickswap",
"QUIDD": "Quidd",
"QUIN": "QUINADS",
"QUINT": "Quint",
+ "QUIPU": "QuipuSwap Governance Token",
"QUIZ": "Quizando",
+ "QUO": "Quoll Finance",
"QUROZ": "Qfora",
"QUSD": "QUSD",
"QVT": "Qvolta",
"QWAN": "The QWAN",
"QWARK": "Qwark",
"QWC": "Qwertycoin",
+ "QWLA": "Qawalla",
+ "QWT": "QoWatt",
"QXC": "QuantumXC",
"R1": "Recast1",
"R2R": "CitiOs",
"R34P": "R34P",
"R3FI": "r3fi.finance",
"R3T": "Real Estate Token",
+ "R4RE": "R4RE Token",
"RAB": "Rabbit",
"RABBIT": "Rabbit Finance",
+ "RABI": "Rabi",
"RAC": "RAcoin",
"RACA": "Radio Caca",
"RACEFI": "RaceFi",
@@ -7600,9 +9280,12 @@
"RADI": "RadicalCoin",
"RADIO": "RadioShack",
"RADR": "CoinRadr",
+ "RAFF": "Ton Raffles",
+ "RAFL": "RAFL",
"RAFT": "Raft",
"RAGE": "Rage Fan",
"RAI": "Rai Reflex Index",
+ "RAID": "Raid Token",
"RAIDER": "Crypto Raiders",
"RAIF": "RAI Finance",
"RAIL": "Railgun",
@@ -7613,10 +9296,12 @@
"RAISE": "Raise Token",
"RAIT": "Rabbitgame",
"RAIZER": "RAIZER",
+ "RAK": "Rake Finance",
"RAKE": "Rake Coin",
"RAKU": "RAKUN",
"RAM": "Ramifi Protocol",
"RAMA": "Ramestta",
+ "RAMEN": "RamenSwap",
"RAMP": "RAMP",
"RANKER": "RankerDao",
"RAP": "Philosoraptor",
@@ -7624,10 +9309,12 @@
"RAPTOR": "Jesus-Raptor",
"RARE": "SuperRare",
"RARI": "Rarible",
+ "RASTA": "ZionLabs Token",
"RATECOIN": "Ratecoin",
"RATING": "DPRating",
"RATIO": "Ratio",
"RATS": "Rats",
+ "RATWIF": "RatWifHat",
"RAVE": "Ravendex",
"RAVELOUS": "Ravelous",
"RAVEN": "Raven Protocol",
@@ -7638,6 +9325,7 @@
"RAZE": "Raze Network",
"RAZOR": "Razor Network",
"RB": "REBorn",
+ "RBBT": "RabbitCoin",
"RBC": "Rubic",
"RBD": "Rubidium",
"RBDT": "RoBust Defense Token",
@@ -7646,7 +9334,10 @@
"RBIS": "ArbiSmart",
"RBIT": "ReturnBit",
"RBLS": "Rebel Bots",
+ "RBLZ": "RebelSatoshi",
"RBN": "Ribbon Finance",
+ "RBNB": "StaFi Staked BNB",
+ "RBP": "Rare Ball Potion",
"RBR": "Ribbit Rewards",
"RBT": "Rabet",
"RBTC": "Smart Bitcoin",
@@ -7661,6 +9352,7 @@
"RCCC": "RCCC",
"RCG": "Recharge",
"RCH": "Rich",
+ "RCKT": "RocketSwap",
"RCM": "READ2N",
"RCN": "Ripio",
"RCOIN": "RCoin",
@@ -7669,11 +9361,13 @@
"RD": "Round Dollar",
"RDC": "Ordocoin",
"RDD": "Reddcoin",
+ "RDDT": "Reddit",
"RDEX": "Orders.Exchange",
"RDF": "ReadFi",
"RDGX": "R-DEE Protocol",
"RDN": "Raiden Network Token",
"RDNT": "Radiant Capital",
+ "RDO": "Rodeo Finance",
"RDPX": "Dopex Rebate Token",
"RDR": "Rise of Defenders",
"RDS": "Reger Diamond",
@@ -7687,6 +9381,8 @@
"REALPLATFORM": "REAL",
"REALY": "Realy Metaverse",
"REAP": "ReapChain",
+ "REAPER": "Grim Finance",
+ "REAU": "Vira-lata Finance",
"REBL": "REBL",
"REBUS": "Rebuschain",
"REC": "Rec Token (REC)",
@@ -7696,25 +9392,32 @@
"REDC": "RedCab",
"REDCO": "Redcoin",
"REDDIT": "Reddit",
+ "REDFEG": "RedFEG",
+ "REDFLOKI": "Red Floki",
"REDI": "REDi",
"REDLANG": "RED",
"REDLC": "Redlight Chain",
"REDLUNA": "Redluna",
"REDN": "Reden",
+ "REDO": "Resistance Dog",
"REDPEPE": "Red Pepe",
"REE": "ReeCoin",
"REEF": "Reef",
"REELT": "Reel Token",
"REF": "Ref Finance",
"REFI": "Realfinance Network",
+ "REFLECT": "REFLECT",
"REFLECTO": "Reflecto",
"REFTOKEN": "RefToken",
"REFUND": "Refund",
"REGALCOIN": "Regalcoin",
+ "REGENT": "REGENT COIN",
"REHAB": "NFT Rehab",
"REI": "REI Network",
+ "REIGN": "Reign of Terror",
"REINDEER": "Reindeer",
"REKT": "REKT",
+ "REKT2": "REKT 2.0",
"REL": "Reliance",
"RELAY": "Relay Token",
"RELI": "Relite Finance",
@@ -7730,8 +9433,10 @@
"RENC": "RENC",
"RENDOGE": "renDOGE",
"RENE": "Renewable Energy",
+ "RENEC": "RENEC",
"RENQ": "Renq Finance",
"RENS": "Rens",
+ "RENT": "Rent AI",
"RENTBE": "Rentberry",
"REP": "Augur",
"REPO": "Repo Coin",
@@ -7752,24 +9457,30 @@
"REVA": "Revault Network",
"REVE": "Revenu",
"REVO": "Revomon",
+ "REVOAI": "revoAI",
"REVOLAND": "Revoland Governance Token",
"REVON": "RevoNetwork",
"REVU": "Revuto",
"REVV": "REVV",
"REW": "Review.Network",
"REX": "Imbrex",
+ "REZ": "Renzo",
"RF": "Raido Financial",
"RFCTR": "Reflector.Finance",
"RFD": "RefundCoin",
"RFDB": "Refund",
"RFG": "Refugees Token",
"RFI": "reflect.finance",
+ "RFKJ": "Independence Token",
"RFL": "RAFL",
"RFOX": "RedFOX Labs",
"RFR": "Refereum",
"RFT": "Rangers Fan Token",
"RFUEL": "Rio DeFi",
+ "RFX": "Reflex",
+ "RGAME": "RGAMES",
"RGC": "RG Coin",
+ "RGEN": "Paragen",
"RGOLD": "Royal Gold",
"RGP": "Rigel Protocol",
"RGT": "Rari Governance Token",
@@ -7780,16 +9491,20 @@
"RHP": "Rhypton Club",
"RIA": "aRIA Currency",
"RIB": "Ribus",
+ "RIBBIT": "Ribbit",
"RIC": "Riecoin",
"RICE": "RiceFarm",
"RICECOIN": "RiceCoin",
"RICH": "Richie",
+ "RICK": "Infinite Ricks",
"RICKMORTY": "Rick And Morty",
"RIDE": "Holoride",
"RIDEMY": "Ride My Car",
"RIF": "RIF Token",
+ "RIF3": "MetaTariffv3",
"RIFI": "Rikkei Finance",
"RIGEL": "Rigel Finance",
+ "RIK": "RIKEZA",
"RIL": "Rilcoin",
"RIM": "MetaRim",
"RIMBIT": "Rimbit",
@@ -7799,6 +9514,7 @@
"RINIA": "Rinia Inu",
"RINU": "Raichu Inu",
"RIO": "Realio Network",
+ "RIOT": "Riot Racers",
"RIP": "Fantom Doge",
"RIPAX": "RipaEx",
"RIPO": "RipOffCoin",
@@ -7807,23 +9523,31 @@
"RISE": "EverRise",
"RISEP": "Rise Protocol",
"RISEVISION": "Rise",
+ "RISITA": "Risitas",
"RITE": "ritestream",
"RITO": "Ritocoin",
+ "RITZ": "Ritz.Game",
+ "RIVUS": "RivusDAO",
"RIYA": "Etheriya",
+ "RIZE": "Rizespor Token",
"RJV": "Rejuve.AI",
"RKC": "Royal Kingdom Coin",
"RKI": "RAKHI",
"RKN": "RAKON",
+ "RKR": "REAKTOR",
"RKT": "Rock Token",
"RLB": "Rollbit Coin",
"RLC": "iExec",
+ "RLM": "MarbleVerse",
"RLOOP": "rLoop",
"RLT": "Runner Land",
"RLX": "Relex",
"RLY": "Rally",
+ "RMATIC": "StaFi Staked MATIC",
"RMBCASH": "RMBCASH",
"RMC": "Russian Mining Coin",
"RMESH": "RightMesh",
+ "RMK": "KIM YONG EN",
"RMOB": "RewardMob",
"RMPL": "RMPL",
"RMRK": "RMRK.app",
@@ -7844,20 +9568,26 @@
"ROAR": "Alpha DEX",
"ROB": "ROB",
"ROBET": "RoBet",
+ "ROBIN": "Robin of Da Hood",
+ "ROBO": "RoboHero",
"ROC": "Rasputin Online Coin",
"ROCK": "Bedrock",
"ROCK2": "Ice Rock Mining",
"ROCKET": "Team Rocket",
"ROCKETCOIN": "RocketCoin",
+ "ROCKETFI": "RocketFi",
"ROCKI": "Rocki",
"ROCKY": "Rocky",
"ROCO": "ROCO FINANCE",
+ "RODAI": "ROD.AI",
"ROE": "Rover Coin",
"ROG": "ROGin AI",
"ROI": "ROIcoin",
"ROK": "Rockchain",
"ROKO": "Roko",
"ROLS": "RollerSwap",
+ "ROM": "ROMCOIN",
+ "ROME": "Rome",
"RONALDINHO": "Ronaldinho Soccer Coin",
"RONCOIN": "RON",
"ROND": "ROND",
@@ -7866,6 +9596,7 @@
"ROOBEE": "ROOBEE",
"ROOK": "KeeperDAO",
"ROOM": "OptionRoom",
+ "ROOST": "Roost Coin",
"ROOT": "The Root Network",
"ROOTCOIN": "RootCoin",
"ROOTS": "RootProject",
@@ -7879,9 +9610,11 @@
"ROUP": "Roup (Ordinals)",
"ROUSH": "Roush Fenway Racing Fan Token",
"ROUTE": "Router Protocol",
+ "ROVI": "ROVI",
"ROW": "Rage On Wheels",
"ROWAN": "Sifchain",
"ROX": "Robotina",
+ "ROY": "Crypto Royale",
"ROYA": "Royale",
"ROYAL": "RoyalCoin",
"RPB": "Republia",
@@ -7892,8 +9625,10 @@
"RPK": "RepubliK",
"RPL": "RocketPool",
"RPM": "Render Payment",
+ "RPR": "The Reaper",
"RPS": "Rps League",
"RPT": "Rug Proof",
+ "RPTR": "Raptor Finance",
"RPUT": "Robin8 Profile Utility Token",
"RPZX": "Rapidz",
"RRB": "Renrenbit",
@@ -7902,7 +9637,10 @@
"RSC": "ResearchCoin",
"RSETH": "Kelp DAO Restaked ETH",
"RSF": "Royal Sting",
+ "RSG": "RSG TOKEN",
+ "RSIC": "RSIC•GENESIS•RUNE",
"RSIN": "Roketsin",
+ "RSPN": "Respan",
"RSR": "Reserve Rights",
"RSRV": "Reserve",
"RSS3": "RSS3",
@@ -7910,13 +9648,16 @@
"RSTK": "Restake Finance",
"RSUN": "RisingSun",
"RSV": "Reserve",
+ "RSWETH": "Restaked Swell Ethereum",
"RT2": "RotoCoin",
"RTB": "AB-CHAIN",
"RTC": "Reltime",
"RTE": "Rate3",
+ "RTF": "Ready to Fight",
"RTH": "Rotharium",
"RTM": "Raptoreum",
"RTT": "Restore Truth Token",
+ "RU": "RIFI United",
"RUBCASH": "RUBCASH",
"RUBIT": "Rublebit",
"RUBX": "eToro Russian Ruble",
@@ -7928,8 +9669,10 @@
"RUGZ": "pulltherug.finance",
"RULER": "Ruler Protocol",
"RUNE": "Thorchain",
+ "RUNY": "Runy",
"RUP": "Rupee",
"RUPX": "Rupaya",
+ "RUSD": "Reflecto USD",
"RUSH": "RUSH COIN",
"RUST": "RustCoin",
"RUSTBITS": "Rustbits",
@@ -7947,10 +9690,14 @@
"RVST": "Revest Finance",
"RVT": "Rivetz",
"RVX": "Rivex",
+ "RWA": "Xend Finance",
+ "RWAS": "RWA Finance",
+ "RWB": "RawBlock",
"RWD": "Reward Vision",
"RWE": "Real-World Evidence",
"RWN": "Rowan Token",
"RWS": "Robonomics Web Services",
+ "RXCG": "RXCGames",
"RXD": "Radiant",
"RXO": "RocketXRP Official",
"RXT": "RIMAUNANGIS",
@@ -7960,29 +9707,36 @@
"RYO": "Ryo",
"RYOMA": "Ryoma",
"RYOSHI": "Ryoshis Vision",
+ "RYU": "The Blue Dragon",
"RYZ": "Anryze",
"RZR": "RazorCoin",
"RedFlokiCEO": "Red Floki CEO",
"S2K": "Sports 2K75",
"S4F": "S4FE",
"S8C": "S88 Coin",
+ "SA": "Superalgos",
"SABAI": "Sabai Ecoverse",
"SABLE": "Sable Finance",
"SABR": "SABR Coin",
"SAC1": "Sable Coin",
"SAF": "Safinus",
- "SAFE": "SafeCoin",
+ "SAFE": "Safe",
"SAFEBTC": "SafeBTC",
"SAFEBULL": "SafeBull",
+ "SAFECOIN": "SafeCoin",
"SAFEGROK": "SafeGrok",
"SAFEHAMSTERS": "SafeHamsters",
"SAFELUNAR": "SafeLunar",
"SAFEMARS": "Safemars",
"SAFEMOON": "SafeMoon",
+ "SAFEMOONCASH": "SafeMoonCash",
+ "SAFEMUUN": "Safemuun",
"SAFEREUM": "Safereum",
"SAFES": "SafeSwap",
"SAFESTAR": "Safe Star",
+ "SAFET": "SafemoonTon",
"SAFEX": "SafeExchangeCoin",
+ "SAFLE": "Safle",
"SAFTP": "Simple Agreement for Future Tokens",
"SAFUU": "SAFUU",
"SAGA": "SagaCoin",
@@ -8012,13 +9766,18 @@
"SAND": "The Sandbox",
"SANDG": "Save and Gain",
"SANDWICH": " Sandwich Network",
+ "SANDY": "Sandy",
+ "SANI": "Sanin Inu",
+ "SANJI": "Sanji Inu",
"SANSHU": "Sanshu Inu",
+ "SANTA": "SANTA CHRISTMAS INU",
"SANTAGROK": "Santa Grok",
"SANTOS": "Santos FC Fan Token",
"SAO": "Sator",
"SAP": "SwapAll",
"SAPE": "SolanaApe",
"SAPP": "Sapphire",
+ "SAPPC": "SappChat",
"SAR": "Saren",
"SARCO": "Sarcophagus",
"SAROS": "Saros",
@@ -8027,8 +9786,11 @@
"SAT": "Satisfaction Token",
"SAT2": "Saturn2Coin",
"SATA": "Signata",
+ "SATOSHINAKAMOTO": "Satoshi Nakamoto",
"SATOX": "Satoxcoin",
+ "SATOZ": "Satozhi",
"SATS": "SATS (Ordinals)",
+ "SATSALL": "ALL BEST ICO SATOSHI",
"SATT": "SaTT",
"SATX": "SatoExchange Token",
"SAUBER": "Alfa Romeo Racing ORLEN Fan Token",
@@ -8036,6 +9798,7 @@
"SAUCEINU": "SAUCEINU",
"SAUDIBONK": "Saudi Bonk",
"SAUDIPEPE": "SAUDI PEPE",
+ "SAUDISHIB": "Saudi Shiba Inu",
"SAUNA": "SaunaFinance Token",
"SAV3": "SAV3",
"SAVG": "SAVAGE",
@@ -8046,7 +9809,10 @@
"SBC": "StableCoin",
"SBCC": "Smart Block Chain City",
"SBE": "Sombe",
+ "SBEFE": "BEFE",
+ "SBF": "SBF In Jail",
"SBGO": "Bingo Share",
+ "SBIO": "Vector Space Biosciences, Inc.",
"SBOX": "SUIBOXER",
"SBR": "Saber",
"SBRT": "SaveBritney",
@@ -8054,22 +9820,30 @@
"SBT": "SOLBIT",
"SBTC": "Super Bitcoin",
"SC": "Siacoin",
+ "SC20": "Shine Chain",
"SCA": "SiaClassic",
+ "SCALE": "Scalia Infrastructure",
"SCAM": "Scam Coin",
+ "SCANS": "0xScans",
"SCAP": "SafeCapital",
+ "SCAPE": "Etherscape",
"SCAR": "Velhalla",
+ "SCARAB": "Scarab Finance",
"SCASH": "SpaceCash",
"SCAT": "Sad Cat Token",
"SCC": "StockChain Coin",
"SCCP": "S.C. Corinthians Fan Token",
"SCDS": "Shrine Cloud Storage Network",
+ "SCFX": "Shui CFX",
"SCH": "SoccerHub",
"SCHO": "Scholarship Coin",
"SCIA": "Stem Cell",
+ "SCIVIVE": "sciVive",
"SCIX": "Scientix",
"SCK": "Space Corsair Key",
"SCL": "Sociall",
"SCLP": "Scallop",
+ "SCM": "ScamFari token",
"SCN": "Swiscoin",
"SCNR": "Swapscanner",
"SCNSOL": "Socean Staked Sol",
@@ -8080,8 +9854,12 @@
"SCOR": "Scorista",
"SCORE": "Scorecoin",
"SCOT": "Scotcoin",
+ "SCOTTY": "Scotty Beam",
"SCP": "ScPrime",
"SCPT": "Script Network",
+ "SCRAP": "Scrap",
+ "SCRAPPY": "Scrappy",
+ "SCRATCH": "Scratch",
"SCREAM": "Scream",
"SCRIBE": "Scribe Network",
"SCRIV": "SCRIV",
@@ -8092,6 +9870,7 @@
"SCRT": "Secret",
"SCRYPTA": "Scrypta",
"SCS": "Solcasino Token",
+ "SCSX": "Secure Cash",
"SCT": "ScryptToken",
"SCTK": "SharesChain",
"SCY": "Synchrony",
@@ -8100,6 +9879,7 @@
"SDAI": "Savings Dai",
"SDAO": "SingularityDAO",
"SDC": "ShadowCash",
+ "SDCRV": "Stake DAO CRV",
"SDEX": "SmarDex",
"SDL": "Saddle Finance",
"SDN": "Shiden Network",
@@ -8108,6 +9888,7 @@
"SDOGE": "SpaceXDoge",
"SDOPE": "SHIBADOGEPEPE",
"SDP": "SydPakCoin",
+ "SDR": "SedraCoin",
"SDRN": "Senderon",
"SDS": "Alchemint Standards",
"SDT": "TerraSDT",
@@ -8117,9 +9898,13 @@
"SEAL": "Seal Finance",
"SEALN": "Seal Network",
"SEAM": "Seamless Protocol",
+ "SEAMLESS": "SeamlessSwap",
+ "SEAN": "Starfish Finance",
"SEAT": "SeatlabNFT",
+ "SEBA": "Seba",
"SEC": "SecureCryptoPayments",
"SECO": "Serum Ecosystem Token",
+ "SECOND": "MetaDOS",
"SECRT": "SecretCoin",
"SECT": "SECTBOT",
"SEED": "Superbloom",
@@ -8130,8 +9915,10 @@
"SEEN": "SEEN",
"SEER": "SEER",
"SEFA": "Mesefa",
+ "SEG": "Solar Energy",
"SEI": "Sei",
"SEILOR": "Kryptonite",
+ "SEKAI": "Sekai DAO",
"SEL": "SelenCoin",
"SELF": "SELFCrypto",
"SELLC": "Sell Token",
@@ -8142,7 +9929,9 @@
"SEND": "Social Send",
"SENNO": "SENNO",
"SENSE": "Sense Token",
+ "SENSI": "Sensi",
"SENSO": "SENSO",
+ "SENSOR": "Sensor Protocol",
"SENT": "Sentinel",
"SEON": "Seedon",
"SEOR": "SEOR Network",
@@ -8155,6 +9944,7 @@
"SERP": "Shibarium Perpetuals",
"SERSH": "Serenity Shield",
"SERV": "Serve",
+ "SERVE": "Metavice",
"SESSIA": "SESSIA",
"SETH": "sETH",
"SETH2": "sETH2",
@@ -8166,8 +9956,11 @@
"SFC": "Solarflarecoin",
"SFCP": "SF Capital",
"SFD": "SafeDeal",
+ "SFEX": "SafeLaunch",
+ "SFF": "Sunflower Farm",
"SFG": "S.Finance",
"SFI": "Saffron.finance",
+ "SFIN": "Songbird Finance",
"SFIT": "Sense4FIT",
"SFL": "Sunflower Land",
"SFLOKI": "SuiFloki-Inu",
@@ -8193,6 +9986,7 @@
"SGP": "SGPay",
"SGPT": "ShitGPT",
"SGR": "Sogur Currency",
+ "SGROK": "Super Grok",
"SGT": "SharedStake Governance Token",
"SHA": "Safe Haven",
"SHACK": "Shackleford",
@@ -8203,10 +9997,13 @@
"SHAMAN": "Shaman King Inu",
"SHAN": "Shanum",
"SHANG": "Shanghai Inu",
+ "SHARBI": "SHARBI",
"SHARD": "ShardCoin",
+ "SHARDS": "SolChicks Shards",
"SHARE": "Seigniorage Shares",
"SHARECHAIN": "ShareChain",
"SHARES": "shares.finance",
+ "SHARK": "Sharky",
"SHARPE": "Sharpe Capital",
"SHAUN": "SHAUN INU",
"SHB4": "Super Heavy Booster 4",
@@ -8225,47 +10022,70 @@
"SHEZMU": "Shezmu",
"SHFL": "SHUFFLE!",
"SHFT": "Shyft Network",
+ "SHG": "Shib Generating",
"SHI": "Shirtum",
"SHIA": "Shiba Saga",
"SHIB": "Shiba Inu",
"SHIB05": "Half Shiba Inu",
+ "SHIB1": "Shib1",
"SHIB2": "SHIB2",
+ "SHIBAAI": "SHIBAAI",
+ "SHIBAC": "SHIBA CLASSIC",
"SHIBACASH": "ShibaCash",
"SHIBAI": "AiShiba",
"SHIBAKEN": "Shibaken Finance",
"SHIBAMOM": "Shiba Mom",
+ "SHIBARMY": "Shib Army",
+ "SHIBAY": "Shiba Inu Pay",
+ "SHIBAZILLA": "ShibaZilla2.0",
+ "SHIBCAT": "SHIBCAT",
"SHIBCEO": "ShibCEO",
"SHIBDOGE": "ShibaDoge",
"SHIBELON": "ShibElon",
"SHIBEMP": "Shiba Inu Empire",
+ "SHIBGF": "Shiba Girlfriend",
+ "SHIBIC": "SHIBIC",
+ "SHIBK": "ShibaKeanu",
+ "SHIBKILLER": "ShibKiller",
+ "SHIBKING": "Shibking Inu",
"SHIBL": "ShibLa",
"SHIBLITE": "Shiba Lite",
"SHIBMERICAN": "Shibmerican",
"SHIBO": "ShiBonk",
"SHIBTC": "Shibabitcoin",
+ "SHIBU": "SHIBU INU",
+ "SHICO": "ShibaCorgi",
"SHIDO": "Shido",
"SHIELD": "Crypto Shield",
"SHIELDNET": "Shield Network",
"SHIFT": "Shift",
"SHIH": "Shih Tzu",
+ "SHIK": "Shikoku",
+ "SHIL": "Shila Inu",
"SHILL": "SHILL Token",
"SHILLD": "SHILLD",
"SHINA": "Shina Inu",
"SHINJA": "Shibnobi",
+ "SHINO": "ShinobiVerse",
"SHINT": "Shiba Interstellar",
"SHIP": "ShipChain",
"SHIRYOINU": "Shiryo-Inu",
"SHIT": "I will poop it NFT",
+ "SHIV": "Shiva Inu",
"SHK": "Shrike",
"SHL": "Oyster Shell",
"SHLD": "ShieldCoin",
"SHND": "StrongHands",
+ "SHNT": "Sats Hunters",
"SHO": "Showcase Token",
"SHOE": "ShoeFy",
+ "SHOKI": "Shoki",
"SHON": "ShonToken",
+ "SHOOT": "Mars Battle",
"SHOOTER": "Top Down Survival Shooter",
"SHOP": "Shoppi Coin",
"SHOPX": "Splyt",
+ "SHORK": "shork",
"SHORTY": "ShortyCoin",
"SHOW": "ShowCoin",
"SHPING": "Shping Coin",
@@ -8273,6 +10093,7 @@
"SHRAP": "Shrapnel",
"SHRED": "ShredN",
"SHREK": "ShrekCoin",
+ "SHRIMP": "SHRIMP",
"SHROOM": "Shroom.Finance",
"SHROOMFOX": "Magic Shroom",
"SHS": "SHEESH",
@@ -8284,6 +10105,7 @@
"SIB": "SibCoin",
"SIBA": "SibaInu",
"SIC": "Swisscoin",
+ "SIDE": "Side.xyz",
"SIDESHIFT": "SideShift Token",
"SIDUS": "Sidus",
"SIERRA": "Sierracoin",
@@ -8303,6 +10125,7 @@
"SILO": "Silo Finance",
"SILV2": "Escrowed Illuvium 2",
"SILVA": "Silva Token",
+ "SILVER": "SILVER",
"SILVERWAY": "Silverway",
"SIMP": "SO-COL",
"SIMPLE": "SimpleChain",
@@ -8311,17 +10134,24 @@
"SIMPSONSINU": "The Simpsons Inu",
"SIN": "Sinverse",
"SINE": "Sinelock",
+ "SING": "SingularFarm",
"SINGLE": "Single Finance",
"SINS": "SafeInsure",
+ "SINSO": "SINSO",
"SINX": "SINX Token",
"SIP": "Space SIP",
"SIPHER": "Sipher",
"SIPHON": "Siphon Life Spell",
+ "SIR": "Sir",
"SIS": "Symbiosis Finance",
"SISA": "Strategic Investments in Significant Areas",
+ "SISC": "Shirushi Coin",
"SISHI": "Sishi Finance",
+ "SIU": "Siu",
+ "SIUUU": "Crustieno Renaldo",
"SIV": "Sivasspor Token",
"SIX": "SIX Network",
+ "SIXPACK": "SIXPACK",
"SIZ": "Sizlux",
"SIZE": "SIZE",
"SJCX": "StorjCoin",
@@ -8333,17 +10163,21 @@
"SKEY": "SmartKey",
"SKI": "Skillchain",
"SKIBIDI": "Skibidi Toilet",
+ "SKID": "Success Kid",
"SKILL": "CryptoBlades",
"SKIN": "Skincoin",
"SKINS": "Coins & Skins",
"SKL": "SKALE Network",
"SKLAY": "sKLAY",
"SKM": "Skrumble Network",
+ "SKO": "Sugar Kingdom Odyssey",
"SKPEPE": "Sheikh Pepe",
"SKR": "Sakuracoin",
"SKRB": "Sakura Bloom",
+ "SKRIMP": "Skrimples",
"SKRP": "Skraps",
"SKRT": "Skrilla Token",
+ "SKRY": "Sakaryaspor Token",
"SKT": "Sukhavati Network",
"SKU": "Sakura",
"SKULL": "Pirate Blocks",
@@ -8354,22 +10188,33 @@
"SKYX": "SKUYX",
"SLA": "SUPERLAUNCH",
"SLAM": "Slam Token",
+ "SLB": "Solberg",
"SLC": "Solice",
+ "SLCL": "Solcial",
"SLEEP": "Sleep Ecosystem",
"SLEEPEE": "SleepFuture",
+ "SLEPE": "Slepe",
+ "SLERF": "SLERF",
+ "SLERF2": "SLERF 2.0",
+ "SLERFFORK": "SlerfFork",
+ "SLEX": "SLEX Token",
"SLG": "Land Of Conquest",
"SLICE": "Tranche Finance",
"SLICEC": "SLICE",
"SLIM": "Solanium",
+ "SLIME": "Snail Trail",
"SLING": "Sling Coin",
"SLINK": "Soft Link",
+ "SLISBNB": "Lista Staked BNB",
"SLM": "SlimCoin",
"SLN": "Smart Layer Network",
"SLND": "Solend",
"SLNV2": "SLNV2",
"SLOKI": "Super Floki",
+ "SLORK": "SLORK",
"SLOTH": "Sloth",
"SLP": "Smooth Love Potion",
+ "SLPV1": "Smooth Love Potion v1",
"SLR": "SolarCoin",
"SLRR": "Solarr",
"SLRS": "Solrise Finance",
@@ -8378,7 +10223,9 @@
"SLT": "Social Lending Network",
"SLVX": "eToro Silver",
"SLX": "Slate",
+ "SMA": "Soma Network",
"SMAC": "Social Media Coin",
+ "SMARS": "SafeMars",
"SMART": "SmartCash",
"SMARTB": "Smart Coin",
"SMARTCREDIT": "SmartCredit Token",
@@ -8397,14 +10244,19 @@
"SMETA": "StarkMeta",
"SMF": "SmurfCoin",
"SMG": "Smaugs NFT",
+ "SMH": "Spacemesh",
"SMI": "SafeMoon Inu",
"SMILE": "Smile Token",
+ "SMILEK": "Smilek to the Bank",
"SMILEY": "SMILEY",
+ "SMILY": "Smily Trump",
"SML": "Saltmarble",
"SMLY": "SmileyCoin",
+ "SMM": "TrendingTool.io",
"SMOG": "Smog",
"SMOKE": "Smoke",
"SMOL": "Smolcoin",
+ "SMOLE": "smolecoin",
"SMON": "StarMon",
"SMOON": "SaylorMoon",
"SMPF": "SMP Finance",
@@ -8412,49 +10264,72 @@
"SMR": "Shimmer",
"SMRAT": "Secured MoonRat",
"SMRT": "SmartMoney",
+ "SMRTR": "SmarterCoin",
"SMSR": "Samsara Coin",
"SMT": "SmartMesh",
"SMTF": "SmartFi",
"SMTY": "Smoothy",
"SMU": "SafeMoneyUP",
"SMUDCAT": "Smudge Cat",
+ "SMUDGE": "Smudge Lord",
+ "SMURFCATBSC": "Real Smurf Cat",
+ "SMURFCATETH": "Real Smurf Cat",
+ "SMURFCATSOL": "Real Smurf Cat",
+ "SMX": "Snapmuse.io",
+ "SN": "SpaceN",
+ "SNA": "SUKUYANA",
"SNACK": "Crypto Snack",
"SNAIL": "SnailBrook",
+ "SNAKES": "Snakes Game",
"SNAP": "SnapEx",
"SNB": "SynchroBitcoin",
"SNC": "SunContract",
+ "SNCT": "SnakeCity",
"SND": "Sandcoin",
"SNE": "StrongNode",
"SNEK": "Snek",
"SNEKE": "Snek on Ethereum",
"SNET": "Snetwork",
"SNFT.BITCI": "Spanish National Team Fan Token",
+ "SNFTS": "Seedify NFT Space",
"SNGLS": "SingularDTV",
"SNIP": "LyrnAI",
+ "SNIPPEPE": "SNIPING PEPE",
+ "SNITCH": "Randall",
"SNK": "Snake Token",
"SNL": "Sport and Leisure",
"SNM": "SONM",
+ "SNMT": "Satoshi Nakamoto Token",
"SNN": "SeChain",
"SNOB": "Snowball",
"SNOOP": "SnoopDAO",
+ "SNOOPY": "Snoopy",
+ "SNORT": "SNORT",
"SNOV": "Snovio",
"SNOW": "Snowswap",
+ "SNOWMANTASTIC": "Snowmantastic",
"SNPC": "SnapCoin",
"SNPS": "Snaps",
"SNRG": "Synergy",
+ "SNRK": "Snark Launch",
"SNS": "Synesis One",
"SNST": "Smooth Network Solutions Token",
+ "SNSY": "Sensay",
"SNT": "Status Network Token",
"SNTR": "Silent Notary",
"SNTVT": "Sentivate",
"SNX": "Synthetix",
"SNY": "Synthetify ",
+ "SO": "Shiny Ore",
+ "SOAI": "SOAI",
"SOAK": "Soak Token",
"SOAR": "Soarcoin",
+ "SOARX": "Soarx Coin",
"SOBA": "SOBA Token",
"SOBB": "SoBit",
"SOBER": "Solabrador",
"SOC": "All Sports Coin",
+ "SOCA": "Socaverse",
"SOCC": "SocialCoin",
"SOCCER": "SoccerInu",
"SOCKS": "Unisocks",
@@ -8462,46 +10337,87 @@
"SODA": "SODA Coin",
"SODO": "Scooby Doo",
"SOFI": "RAI Finance",
+ "SOFTCO": "SOFT COQ INU",
+ "SOH": "Stohn Coin",
"SOHOT": "SOHOTRN",
"SOIL": "SoilCoin",
"SOJ": "Sojourn Coin",
"SOKU": "Soku Swap",
"SOL": "Solana",
+ "SOL10": "SOLANA MEME TOKEN",
"SOLA": "Sola",
+ "SOLAI": "Solana AI BNB",
+ "SOLALA": "Solala",
"SOLAMA": "Solama",
+ "SOLAMB": "SOLAMB",
+ "SOLAPE": "SolAPE Token",
"SOLAR": "Solar",
+ "SOLARA": "Solara",
"SOLARDAO": "Solar DAO",
"SOLARE": "Solareum",
"SOLARFARM": "SolarFarm",
"SOLARIX": "SOLARIX",
+ "SOLAV": "SOLAV TOKEN",
+ "SOLBULL": "SOLBULL",
+ "SOLC": "SolCard",
+ "SOLCASH": "SOLCash",
+ "SOLCAT": "SOLCAT",
+ "SOLCEX": "SolCex",
"SOLE": "SoleCoin",
+ "SOLEX": "Solex Launchpad",
+ "SOLFI": "SoliDefi",
+ "SOLGOAT": "SOLGOAT",
+ "SOLGUN": "Solgun",
"SOLID": "Solidified",
+ "SOLIDSEX": "SOLIDsex: Tokenized veSOLID",
+ "SOLKIT": "Solana Kit",
+ "SOLNAV": "SOLNAV AI",
+ "SOLNIC": "Solnic",
"SOLO": "Sologenic",
+ "SOLPAD": "Solpad Finance",
+ "SOLPAKA": "Solpaka",
+ "SOLPENG": "SOLPENG",
"SOLR": "SolRazr",
+ "SOLS": "sols",
+ "SOLSCC": "sols",
+ "SOLSPONGE": "Solsponge",
"SOLVE": "SOLVE",
"SOLX": "SolarX",
+ "SOLY": "Solamander",
+ "SOLZILLA": "Solzilla",
"SOM": "Souls of Meta",
"SOMA": "Soma",
+ "SOMM": "Sommelier",
"SOMNIUM": "Somnium Space CUBEs",
"SON": "Simone",
"SONAR": "SonarWatch",
"SONG": "Song Coin",
+ "SONGOKU": "SONGOKU",
"SONIC": "Sonic",
"SONICO": "Sonic",
+ "SONICWIF": "SonicWifHat",
+ "SONNE": "Sonne Finance",
"SOON": "Soonaverse",
"SOONCOIN": "SoonCoin",
"SOP": "SoPay",
"SOR": "Sorcery",
"SORA": "Sora Validator Token",
+ "SORACEO": "SORA CEO",
+ "SORADOGE": "Sora Doge",
+ "SORAI": "Sora AI",
+ "SORAPORN": "Sora Porn",
"SOSNOVKINO": "Sosnovkino",
"SOT": "Soccer Crypto",
"SOTA": "SOTA Finance",
"SOUL": "Phantasma",
+ "SOULO": "SouloCoin",
"SOULS": "Soulsaver",
"SOUND": "Sound Coin",
"SOURCE": "ReSource Protocol",
"SOV": "Sovryn",
"SOVE": "Soverain",
+ "SOVI": "Sovi Finance",
+ "SOWA": "Sowa AI",
"SOY": "Soy Finance",
"SP": "Sex Pistols",
"SP8DE": "Sp8de",
@@ -8509,6 +10425,7 @@
"SPACE": "Spacelens",
"SPACECOIN": "SpaceCoin",
"SPACEPI": "SpacePi",
+ "SPAD": "SolPad",
"SPAI": "Starship AI",
"SPAIN": "SpainCoin",
"SPANK": "SpankChain",
@@ -8519,20 +10436,26 @@
"SPC": "SpaceChain ERC20",
"SPC.QRC": "SpaceChain (QRC-20)",
"SPCIE": "Specie",
+ "SPCT": "Spectra Chain",
"SPD": "Stipend",
"SPDR": "SpiderDAO",
+ "SPDX": "Speedex",
"SPE": "SavePlanetEarth",
"SPEC": "SpecCoin",
+ "SPECTRE": "SPECTRE AI",
+ "SPEEDY": "Speedy",
"SPELL": "Spell Token",
"SPELLFIRE": "Spellfire",
"SPEND": "Spend",
"SPENDC": "SpendCoin",
+ "SPEPE": "SolanaPepe",
"SPEX": "StepEx",
"SPF": "SportyCo",
"SPFC": "São Paulo FC Fan Token",
"SPG": "Space Crypto",
"SPGBB": "SPGBB",
"SPH": "Spheroid Universe",
+ "SPHERE": "Sphere Finance",
"SPHR": "Sphere Coin",
"SPHRI": "Spherium",
"SPHTX": "SophiaTX",
@@ -8540,8 +10463,10 @@
"SPI": "Shopping.io",
"SPICE": "Spice",
"SPIDER": "Spider Man",
+ "SPIDERMAN": "SPIDERMAN BITCOIN",
"SPIDEY": "Spidey",
"SPIKE": "Spiking",
+ "SPILLWAYS": "SpillWays",
"SPIN": "SPIN Protocol",
"SPIRIT": "SpiritSwap",
"SPIZ": "SPACE-iZ",
@@ -8556,12 +10481,16 @@
"SPOK": "Spock",
"SPOL": "Starterpool",
"SPONGE": "Sponge",
+ "SPONGEBOB": "Spongebob Squarepants",
"SPOODY": "Spoody Man",
+ "SPOOF": "Spoofify",
"SPOOL": "Spool DAO Token",
"SPORE": "Enoki Finance",
"SPORT": "SportsCoin",
"SPOTS": "Spots",
"SPOX": "Sports Future Exchange Token",
+ "SPRING": "Spring",
+ "SPRITZMOON": "SpritzMoon Crypto Token",
"SPRKL": "Sparkle Loyalty",
"SPRT": "Sportium",
"SPRTS": "Sprouts",
@@ -8575,24 +10504,33 @@
"SPX": "SPX6900",
"SPXC": "SpaceXCoin",
"SPY": "Smarty Pay",
+ "SPYRO": "SPYRO",
"SQAT": "Syndiqate",
"SQG": "Squid Token",
"SQL": "Squall Coin",
"SQR": "Magic Square",
+ "SQT": "SubQuery Network",
"SQTS": "Sqts (Ordinals)",
+ "SQUA": "Square Token",
+ "SQUAD": "Superpower Squad",
"SQUATCH": "SASQUATCH",
"SQUAWK": "Squawk",
"SQUEEZER": "Squeezer",
+ "SQUIBONK": "SQUIBONK",
"SQUID": "Squid Game",
"SQUID2": "Squid Game 2.0",
"SQUIDGROW": "SquidGrow",
+ "SQUOGE": "DogeSquatch",
"SRBP": "Super Rare Ball Potion",
"SRC": "SecureCoin",
+ "SRCH": "SolSrch",
"SRCOIN": "SRCoin",
+ "SRCX": "Source Token",
"SREUR": "SocialRemit",
"SRG": "Street Runner NFT",
"SRK": "SparkPoint",
"SRLTY": "SaitaRealty",
+ "SRLY": "Rally (Solana)",
"SRM": "Serum",
"SRN": "SirinLabs",
"SRNT": "Serenity",
@@ -8601,6 +10539,7 @@
"SRWD": "ShibRWD",
"SRX": "StorX",
"SS": "Sharder",
+ "SSB": "SatoshiStreetBets",
"SSC": "SelfSell",
"SSD": "Sonic Screw Driver Coin",
"SSE": "Soroosh Smart Ecosystem",
@@ -8610,15 +10549,18 @@
"SSHIB": "Solana Shib",
"SSHIP": "SSHIP",
"SSLX": "StarSlax",
+ "SSNC": "SatoshiSync",
"SSS": "StarSharks",
"SST": "SIMBA Storage Token",
"SSTC": "SunShotCoin",
+ "SSU": "Sunny Side up",
"SSV": "ssv.network",
"SSVCOIN": "SSVCoin",
"SSWP": "Suiswap",
"SSX": "SOMESING",
"ST": "Skippy Token",
- "STA": "Defi STOA",
+ "STA": "STOA Network",
+ "STABLZ": "Stablz",
"STAC": "STAC",
"STACK": "StackOS",
"STACKS": "STACKS",
@@ -8629,11 +10571,11 @@
"STALIN": "StalinCoin",
"STAMP": "SafePost",
"STANDARD": "Stakeborg DAO",
+ "STAPT": "Ditto Staked Aptos",
"STAR": "FileStar",
"STARAMBA": "Staramba",
"STARBASE": "Starbase",
"STARC": "StarChain",
- "STARK": "Starknet",
"STARL": "StarLink",
"STARLAUNCH": "StarLaunch",
"STARLY": "Starly",
@@ -8642,6 +10584,7 @@
"STARSH": "StarShip Token",
"STARSHI": "Starship",
"STARSHIP": "STARSHIP",
+ "STARSHIPDOGE": "Starship Doge",
"START": "StartCoin",
"STARTA": "Starta",
"STARWARS": "Star Wars",
@@ -8650,23 +10593,32 @@
"STATE": "New World Order",
"STATER": "Stater",
"STATERA": "Statera",
+ "STATOM": "Stride Staked ATOM",
+ "STATS": "Stats",
"STAX": "Staxcoin",
+ "STAY": "NFsTay",
+ "STBOT": "SolTradingBot",
"STBU": "Stobox Token",
"STC": "Satoshi Island",
"STCN": "Stakecoin",
"STD": "STEED",
+ "STDYDX": "Stride Staked DYDX",
"STEAK": "SteakHut Finance",
"STEALTH": "StealthPad",
"STEEM": "Steem",
"STEEMD": "Steem Dollars",
"STEEP": "SteepCoin",
+ "STELLA": "StellaSwap",
+ "STEMX": "STEMX",
"STEN": "Steneum Coin",
"STEP": "Step Finance",
+ "STEPG": "StepG",
"STEPH": "Step Hero",
"STEPR": "Step",
"STEPS": "Steps",
"STERLINGCOIN": "SterlingCoin",
"STETH": "Staked Ether",
+ "STEVMOS": "Stride Staked EVMOS",
"STEWIE": "Stewie Coin",
"STEX": "STEX",
"STF": "Structure Finance",
@@ -8674,18 +10626,24 @@
"STG": "Stargate Finance",
"STHR": "Stakerush",
"STI": "Seek Tiger",
+ "STIC": "StickMan",
"STIK": "Staika",
+ "STIMA": "STIMA",
"STING": "Sting",
+ "STINJ": "Stride Staked INJ",
"STJUNO": "Stride Staked JUNO",
"STK": "STK Token",
"STKAAVE": "Staked Aave",
"STKATOM": "pSTAKE Staked ATOM",
+ "STKBNB": "pSTAKE Staked BNB",
"STKK": "Streakk",
"STKXPRT": "pSTAKE Staked XPRT",
"STLE": "Saint Ligne",
"STMAN": "Stickman Battleground",
+ "STMATIC": "Lido Staked Matic",
"STMX": "StormX",
"STND": "Standard Protocol",
+ "STNEAR": "Staked NEAR",
"STO": "Save The Ocean",
"STOGE": "Stoner Doge Finance",
"STON": "Ston",
@@ -8697,7 +10655,9 @@
"STORE": "Bit Store",
"STORJ": "Storj",
"STORM": "Storm",
+ "STORY": "Story",
"STOS": "Stratos",
+ "STOSMO": "Stride Staked OSMO",
"STOX": "Stox",
"STP": "StashPay",
"STPL": "Stream Protocol",
@@ -8710,8 +10670,11 @@
"STRD": "Stride",
"STRDY": "Sturdy",
"STREAM": "STREAMIT COIN",
+ "STREETH": "STREETH",
+ "STRI": "Strite",
+ "STRIKE": "Strike",
"STRIP": "Stripto",
- "STRK": "Strike",
+ "STRK": "Starknet",
"STRM": "StreamCoin",
"STRNGR": "Stronger",
"STRONG": "Strong",
@@ -8725,17 +10688,24 @@
"STSTARS": "Stride Staked Stars",
"STSW": "Stackswap",
"STT": "Statter Network ",
+ "STTON": "bemo staked TON",
"STU": "BitJob",
"STUART": "Stuart Inu",
+ "STUD": "Studyum",
"STUDENTC": "Student Coin",
"STUSDT": "Staked USDT",
"STV": "Sativa Coin",
"STWEMIX": "Staked WEMIX",
"STX": "Stacks",
"STYL": "Stylike Governance",
+ "STYLE": "Style",
"STZ": "99Starz",
"STZEN": "StakedZEN",
+ "STZETA": "ZetaEarn",
+ "STZU": "Shihtzu Exchange Token",
+ "SU": "Smol Su",
"SUBAWU": "Subawu Token",
+ "SUBF": "Super Best Friends",
"SUBS": "Substratum Network",
"SUCR": "Sucre",
"SUDO": "sudoswap",
@@ -8744,6 +10714,7 @@
"SUIA": "SUIA",
"SUIP": "SuiPad",
"SUKU": "SUKU",
+ "SULFERC": "SULFERC",
"SUM": "SumSwap",
"SUMMER": "Summer",
"SUMO": "Sumokoin",
@@ -8767,17 +10738,23 @@
"SURF": "Surf.Finance",
"SURV": "Survival Game Online",
"SUSD": "sUSD",
+ "SUSDE": "Ethena Staked USDe",
"SUSHI": "Sushi",
+ "SUTEKU": "Suteku",
"SUTER": "Suterusu",
"SUZUME": "Shita-kiri Suzume",
"SVD": "savedroid",
"SVN": "Savanna",
+ "SVPN": "Shadow Node",
"SVS": "GivingToServices SVS",
"SVT": "Solvent",
"SVX": "Savix",
+ "SVY": "Savvy",
"SWA": "Swace",
"SWACH": "Swachhcoin",
"SWAG": "SWAG Finance",
+ "SWAI": "Safe Water AI",
+ "SWAMP": "Swampy",
"SWAP": "Trustswap",
"SWAPP": "SWAPP Protocol",
"SWAPZ": "SWAPZ.app",
@@ -8790,26 +10767,35 @@
"SWD": "SW DAO",
"SWDAO": "Super Whale DAO",
"SWEAT": "Sweat Economy",
+ "SWEEP": "Sweeptoken",
"SWEET": "SweetStake",
"SWETH": "swETH",
"SWFL": "Swapfolio",
"SWFTC": "SWFTCoin",
+ "SWG": "Swirge",
+ "SWH": "simbawifhat",
"SWIFT": "BitSwift",
"SWIFTIES": "Taylor Swift",
"SWIM": "SWIM - Spread Wisdom",
"SWIN": "SwinCoin",
"SWING": "SwingCoin",
"SWINGBY": "Swingby",
+ "SWIRL": "Swirl Social",
"SWIRLX": "SwirlToken",
"SWISE": "StakeWise",
"SWITCH": "Switch",
"SWM": "Swarm Fund",
+ "SWOLE": "Swole Doge",
"SWOP": "Swop",
+ "SWORD": "eZKalibur",
"SWOT": "Swot AI",
"SWP": "Kava Swap",
+ "SWPR": "Swapr",
+ "SWPRS": "Maid Sweepers",
"SWRV": "Swerve",
"SWT": "Swarm City Token",
"SWTH": "Carbon",
+ "SWTS": "SWEETS",
"SWU": "Smart World Union",
"SWYFTT": "SWYFT",
"SX": "SX Network",
@@ -8819,6 +10805,7 @@
"SXP": "SXP",
"SXS": "Sphere",
"SXUT": "SPECTRE Utility Token",
+ "SYA": "SaveYourAssets",
"SYBC": "SYB Coin",
"SYBL": "Sybulls",
"SYBTC": "sBTC",
@@ -8831,10 +10818,13 @@
"SYNCC": "SyncCoin",
"SYNCO": "Synco",
"SYNLEV": "SynLev",
+ "SYNO": "Synonym Finance",
"SYNR": "MOBLAND",
+ "SYNTH": "Synthswap",
"SYNX": "Syndicate",
"SYPOOL": "Sypool",
"SYS": "Syscoin",
+ "SZCB": "Zugacoin",
"T": "Threshold Network Token",
"T23": "T23",
"T99": "Tethereum",
@@ -8844,10 +10834,12 @@
"TAC": "Traceability Chain",
"TACHYON": "Tachyon Protocol",
"TAD": "Tadpole Finance",
+ "TADA": "Ta-da",
"TAF": "TAF",
"TAGR": "Think And Get Rich Coin",
"TAI": "tBridge Token",
"TAIKULA": "TAIKULA COIN",
+ "TAIL": "Tail",
"TAIYO": "Taiyo",
"TAJ": "TajCoin",
"TAK": "TakCoin",
@@ -8861,11 +10853,13 @@
"TANGO": "keyTango",
"TANGYUAN": "TangYuan",
"TANK": "CryptoTanks",
+ "TANPIN": "Tanpin",
"TAO": "Bittensor",
"TAONU": "TAO INU",
"TAP": "TAP FANTASY",
"TAPC": "Tap Coin",
"TAPPINGCOIN": "TappingCoin",
+ "TAPROOT": "Taproot Exchange",
"TAPT": "Tortuga Staked Aptos",
"TARA": "Taraxa",
"TARAL": "TARALITY",
@@ -8876,17 +10870,22 @@
"TASH": "Smart Trip Platform",
"TASTE": "TasteNFT",
"TAT": "Tatcoin",
+ "TATA": "TATA Coin",
"TATE": "Tate",
+ "TATSU": "Taτsu",
"TAU": "Lamden Tau",
"TAUC": "Taurus Coin",
"TAUM": "Orbitau Taureum",
"TAUR": "Marnotaur",
"TAVA": "ALTAVA",
+ "TAX": "MetaToll",
"TBAC": "BlockAura",
+ "TBANK": "TaoBank",
"TBAR": "Titanium BAR",
"TBB": "Trade Butler Bot",
"TBC": "Ten Best Coins",
"TBCC": "TBCC",
+ "TBCI": "tbci",
"TBCX": "TrashBurn",
"TBE": "TrustBase",
"TBIS": "TBIS token",
@@ -8896,12 +10895,15 @@
"TBX": "Tokenbox",
"TCANDY": "TripCandy",
"TCAP": "Total Crypto Market Cap",
+ "TCAT": "The Currency Analytics",
"TCC": "The ChampCoin",
"TCG2": "TCG Coin 2.0",
+ "TCGC": "TCG Verse",
"TCH": "Thorecash",
"TCHAIN": "Tchain",
"TCHB": "Teachers Blockchain",
"TCHTRX": "ThoreCashTRX",
+ "TCNH": "TrueCNH",
"TCNX": "Tercet Network",
"TCO": "ThinkCoin",
"TCP": "The Crypto Prophecies",
@@ -8925,18 +10927,21 @@
"TECH": "TechCoin",
"TECRA": "TecraCoin",
"TED": "TED",
- "TEDDY": "Teddy Doge",
- "TEDDYV2": "Teddy Doge v2",
+ "TEDDY": "Teddy Doge v2",
+ "TEDDYV1": "Teddy Doge",
"TEE": "Guarantee",
"TEER": "Integritee",
"TEK": "TekCoin",
"TEL": "Telcoin",
"TELE": "Miracle Tele",
+ "TELEBTC": "teleBTC",
"TELL": "Tellurion",
"TELLER": "Teller",
+ "TELO": "Telo Meme Coin",
"TELOS": "Teloscoin",
"TEM": "Temtum",
"TEMCO": "TEMCO",
+ "TEMP": "Tempus",
"TEN": "Tokenomy",
"TEND": "Tendies",
"TENDIE": "TendieSwap",
@@ -8946,6 +10951,7 @@
"TENSHI": "Tenshi",
"TENT": "TENT",
"TEP": "Tepleton",
+ "TEQ": "Teq Network",
"TER": "TerraNovaCoin",
"TERA": "TERA",
"TERADYNE": "Teradyne",
@@ -8954,6 +10960,7 @@
"TERN": "Ternio",
"TERN.ETH": "Ternio ERC20",
"TERRA": "TERRABYTE AI",
+ "TERZ": "SHELTERZ",
"TES": "TeslaCoin",
"TESLA": "TeslaCoilCoin",
"TESLAI": "Tesla AI",
@@ -8961,6 +10968,7 @@
"TESTA": "Testa",
"TET": "Tectum",
"TETHER": "Hermione",
+ "TETHYS": "Tethys",
"TETRA": "Tetra",
"TETU": "TETU",
"TFBX": "Truefeedback Token",
@@ -8974,12 +10982,17 @@
"TGAME": "TrueGame",
"TGC": "TigerCoin",
"TGCC": "TheGCCcoin",
+ "TGPT": "Trading GPT",
+ "TGRAM": "TG20 TGram",
"TGT": "TargetCoin",
"TH": "Team Heretics Fan Token",
"THALES": "Thales",
+ "THAVAGE": "Mike Tython",
"THC": "The Hempcoin",
"THE": "The Protocol",
+ "THE9": "THE9",
"THEBLOX": "The Blox Project",
+ "THECA": "Theca",
"THECITADEL": "The Citadel",
"THEDAO": "The DAO",
"THEMIS": "Themis",
@@ -8987,16 +11000,22 @@
"THEO": "Theopetra",
"THEOS": "Theos",
"THETA": "Theta Network",
- "THETRIBE": "The Tribe ()",
+ "THETRIBE": "The Tribe",
"THEX": "Thore Exchange",
"THG": "Thetan Arena",
+ "THIK": "ThikDik",
"THING": "Nothing",
+ "THINKWAREAI": "ThinkwareAI",
+ "THL": "Thala",
"THN": "Throne",
"THNX": "ThankYou",
"THO": "Athero",
+ "THOL": "AngelBlock",
"THOR": "THORSwap",
+ "THOREUM": "Thoreum V3",
"THP": "TurboHigh Performance",
"THR": "Thorecoin",
+ "THREE": "Three Protocol Token ",
"THRT": "ThriveToken",
"THRY": "THEORY",
"THS": "TechShares",
@@ -9004,6 +11023,7 @@
"THUG": "Thug Life",
"THUNDER": "ThunderStake",
"THX": "Thorenext",
+ "TI": "Titanium22",
"TIA": "Celestia",
"TIANHE": "Tianhe",
"TIC": "TrueInvestmentCoin",
@@ -9015,6 +11035,8 @@
"TIGER": "JungleKing TigerCoin",
"TIGERC": "TigerCash",
"TIGERMOON": "TigerMoon",
+ "TIGRA": "Tigra",
+ "TIGRES": "Tigres Fan Token",
"TIIM": "TriipMiles",
"TIK": "ChronoBase",
"TIKI": "Tiki Token",
@@ -9026,15 +11048,21 @@
"TINC": "Tiny Coin",
"TINKU": "TinkuCoin",
"TINU": "Telegram Inu",
+ "TINY": "TinyBits",
"TIOX": "TIOx",
"TIP": "Tip Blockchain",
+ "TIPINU": "Tip Inu",
"TIPS": "FedoraCoin",
+ "TIPSY": "TipsyCoin",
"TIT": "TittieCoin",
"TITA": "Titan Hunters",
"TITAN": "TitanSwap",
"TITANO": "Titano",
"TITANX": "TitanX",
"TITC": "TitCoin",
+ "TITI": "TiTi Protocol",
+ "TITTY": "TamaKitty",
+ "TIUSD": "TiUSD",
"TIX": "Blocktix",
"TKA": "Tokia",
"TKB": "TokenBot",
@@ -9048,6 +11076,7 @@
"TKP": "TOKPIE",
"TKR": "CryptoInsight",
"TKS": "Tokes",
+ "TKST": "TokenSight",
"TKT": "Crypto Tickets",
"TKX": "Tokenize Xchange",
"TKY": "THEKEY Token",
@@ -9056,20 +11085,27 @@
"TLN": "Trustlines Network",
"TLOS": "Telos",
"TLP": "TulipCoin",
+ "TLW": "TILWIKI",
"TME": "Timereum",
"TMED": "MDsquare",
"TMN": "TranslateMe",
+ "TMNG": "TMN Global",
+ "TMNT": "TMNT",
"TMON": "Two Monkey Juice Bar",
+ "TMRW": "TMRW Coin",
"TMT": "Tamy Token",
"TMTG": "The Midas Touch Gold",
"TN": "TurtleNetwork",
"TNB": "Time New Bank",
"TNC": "TNC Coin",
"TNDC": "TendaCoin",
+ "TNGBL": "Tangible",
"TNS": "Transcodium",
+ "TNSR": "Tensor",
"TNT": "Tierion",
"TOA": "TOA Coin",
"TOAD": "TOAD",
+ "TOB": "Tom On Base",
"TOC": "TouchCon",
"TODAY": "TodayCoin",
"TOK": "Tokenplace",
@@ -9083,20 +11119,29 @@
"TOKO": "ToKoin",
"TOKU": "TokugawaCoin",
"TOL": "Tolar",
+ "TOLO": "Tolo Yacoloco",
+ "TOLYCAT": "Toly's Cat",
"TOM": "TOM Finance",
"TOMAHAWKCOIN": "Tomahawkcoin",
+ "TOMAN": "IRR",
"TOMB": "Tomb",
"TOMI": "tomiNet",
"TOMOE": "TomoChain ERC20",
"TOMS": "TomTomCoin",
"TON": "Tokamak Network",
+ "TONALD": "Tonald Trump",
"TONCOIN": "The Open Network",
"TONE": "TE-FOOD",
+ "TONI": "Daytona Finance",
"TONIC": "Tectonic",
+ "TONK": "Tonk Inu",
"TONNEL": "TONNEL Network",
"TONS": "TONSniper",
"TONTOKEN": "TONToken",
+ "TONUP": "TonUP",
+ "TONY": "TONY THE DUCK",
"TOOB": "Toobcoin",
+ "TOOKER": "tooker kurlson",
"TOOLS": "TOOLS",
"TOON": "Pontoon",
"TOONF": "Toon Finance",
@@ -9113,14 +11158,19 @@
"TOS": "ThingsOperatingSystem",
"TOSA": "TosaInu BSC",
"TOSC": "T.OS",
+ "TOSDIS": "TosDis",
+ "TOSHE": "Toshe",
"TOSHI": "Toshi",
"TOT": "TotCoin",
"TOTEM": "DragonMaster",
"TOTM": "Totem",
+ "TOTO": "TOTO",
"TOUCHFAN": "TouchFan",
+ "TOURISTS": "TOURIST SHIBA INU",
"TOWER": "Tower",
"TOWN": "Town Star",
"TOX": "INTOverse",
+ "TOYBOX": "Memefi Toybox 404",
"TOZ": "Tozex",
"TP": "Token Swap",
"TPAD": "TrustPad",
@@ -9128,8 +11178,12 @@
"TPC": "Techpay",
"TPCASH": "TPCash",
"TPG": "Troll Payment",
+ "TPRO": "TPRO Network",
"TPT": "Token Pocket",
+ "TPU": "TensorSpace",
+ "TPV": "TravGoPV",
"TPY": "Thrupenny",
+ "TQRT": "TokoQrt",
"TR3": "Tr3zor",
"TRA": "Trabzonspor Fan Token",
"TRAC": "OriginTrail",
@@ -9139,6 +11193,8 @@
"TRADEX": "TradeX AI",
"TRAID": "Traid",
"TRAK": "TrakInvest",
+ "TRANQ": "Tranquil Finance",
+ "TRANS": "Trans Pepe",
"TRAT": "Tratok",
"TRAVA": "Trava Finance",
"TRAXIA": "Traxia Membership Token",
@@ -9154,11 +11210,14 @@
"TRDL": "Strudel Finance",
"TRDS": "Traders Token",
"TRDT": "Trident",
+ "TREAT": "Treat",
"TRECENTO": "Trecento Blockchain Capital",
"TREE": "HyperionX",
"TREEB": "Retreeb",
+ "TREMP": "MEGE",
"TRESTLE": "TRESTLE",
"TRET": "Tourist Review",
+ "TRG": "The Rug Game",
"TRGI": "The Real Golden Inu",
"TRI": "Triangles Coin",
"TRIA": "Triaconta",
@@ -9176,35 +11235,53 @@
"TRIX": "TriumphX",
"TRK": "TruckCoin",
"TRL": "Triall",
+ "TRMX": "TourismX Token",
"TRNDZ": "Trendsy",
"TROLL": "Trollcoin",
"TROLLHEIM": "Trollheim",
+ "TROLLMODE": "TROLL MODE",
"TRONPAD": "TRONPAD",
"TROP": "Interop",
+ "TROSS": "Trossard",
+ "TROVE": "Arbitrove Governance Token",
"TROY": "Troy",
"TRP": "Tronipay",
"TRR": "Terran Coin",
+ "TRSCT": "Transactra Finance",
"TRST": "TrustCoin",
"TRTL": "TurtleCoin",
"TRTT": "Trittium",
"TRU": "TrueFi",
+ "TRUCE": "WORLD PEACE PROJECT",
"TRUE": "True Chain",
"TRUEBIT": "Truebit Protocol",
+ "TRUF": "Truflation",
"TRUMP": "MAGA",
"TRUMP2024": "Donald Trump",
"TRUMPARMY": "Trump Army",
+ "TRUMPCAT": "TRUMPCAT",
"TRUMPCOIN": "TrumpCoin",
+ "TRUMPDOGE": "Trump Doge",
+ "TRUMPEPE": "Trump Pepe",
+ "TRUMPINU": "Trump Inu",
+ "TRUMPJR": "TrumpJr",
+ "TRUMPSHIBA": "Trump Shiba",
+ "TRUMPTECH": "Trump Tech",
+ "TRUNK": "Elephant Money",
"TRUST": "TrustDAO",
+ "TRUSTNFT": "TrustNFT",
"TRUTH": "TruthGPT",
"TRV": "TrustVerse",
"TRVC": "Trivechain",
"TRVL": "TRVL",
+ "TRWP": "Danol Tremp",
"TRX": "TRON",
"TRXC": "TRONCLASSIC",
"TRXDICE": "TRONdice",
"TRXWIN": "TronWin",
"TRYB": "BiLira",
"TRYC": "TRYC",
+ "TRYHARDS": "TryHards",
"TRYX": "eToro Turkish Lira",
"TSA": "Teaswap Art",
"TSC": "TrusterCoin",
@@ -9213,9 +11290,12 @@
"TSE": "TattooCoin",
"TSF": "Transaction Service Fee",
"TSG": "The Soldiers Gold",
+ "TSHARE": "Tomb Shares",
"TSHP": "12Ships",
"TSL": "Energo",
+ "TSN": "Tsunami Exchange Token",
"TSR": "Tesra",
+ "TSUBASAUT": "TSUBASA Utility Token",
"TSUGT": "Captain Tsubasa",
"TSUKA": "Dejitaru Tsuka",
"TSX": "TradeStars",
@@ -9231,7 +11311,10 @@
"TUCKER": "TUCKER CARLSON",
"TUDA": "Tutor's Diary",
"TUF": "TUF Token",
+ "TUGOU": "TuGou",
"TULIP": "Tulip Protocol",
+ "TUNA": "TUNACOIN",
+ "TUNE": "Bitune",
"TUP": "Tenup",
"TUR": "Turron",
"TURBO": "Turbo Wallet",
@@ -9240,25 +11323,37 @@
"TUS": "Treasure Under Sea",
"TUSD": "True USD",
"TUT": "Tutellus",
+ "TUZLA": "Tuzlaspor Token",
"TVK": "Terra Virtua Kolect",
"TVNT": "TravelNote",
+ "TVRS": "TiraVerse",
+ "TW": "Winners Coin",
"TWC": "Twilight",
"TWD": "Terra World Token",
"TWEE": "TWEEBAA",
+ "TWEETY": "Tweety",
+ "TWELVE": "TWELVE ZODIAC",
"TWEP": "The Web3 Project",
"TWIN": "Twinci",
"TWIST": "TwisterCoin",
"TWLV": "Twelve Coin",
+ "TWOCAT": "TwoTalkingCats",
"TWOGE": "Twoge Inu",
"TWT": "Trust Wallet Token",
+ "TX": "Tradix",
+ "TX20": "Trex20",
"TXA": "TXA",
+ "TXAG": "tSILVER",
+ "TXAU": "tGOLD",
"TXBIT": "Txbit Token",
"TXG": "TRUSTxGAMING",
- "TXL": "Tixl",
+ "TXL": "Autobahn Network",
"TXT": "TuneTrade",
"TYBG": "Base God",
+ "TYBGSc": "Base Goddess",
"TYC": "Tycoon",
"TYCOON": "CryptoTycoon",
+ "TYOGHOUL": "TYO GHOUL",
"TYPE": "Typerium",
"TYRANT": "Fable Of The Dragon",
"TYRION": "Tyrion",
@@ -9288,12 +11383,18 @@
"UCASH": "U.CASH",
"UCG": "Universe Crystal Gene",
"UCH": "UChain",
+ "UCJL": "Utility Cjournal",
+ "UCM": "UCROWDME",
"UCN": "UC Coin",
"UCO": "Uniris",
"UCOIN": "Ucoin",
+ "UCON": "YouCoin Metaverse",
+ "UCORE": "UnityCore Protocol",
"UCT": "UnitedCrowd",
+ "UCX": "UCX",
"UDO": "Unido",
"UDOO": "Hyprr",
+ "UDS": "Undeads Games",
"UDT": "Unlock Protocol",
"UEC": "United Emirates Coin",
"UEDC": "United Emirate Decentralized Coin",
@@ -9311,12 +11412,15 @@
"UFT": "UniLend Finance",
"UGAS": "Ultrain",
"UGC": "ugChain",
+ "UGOLD": "UGOLD Inc.",
"UGT": "Universal Games Token",
"UHP": "Ulgen Hash Power",
+ "UIBT": "Unibit",
"UIM": "UNIVERSE ISLAND",
"UIN": "Alliance Chain",
"UIP": "UnlimitedIP",
"UIS": "Unitus",
+ "UJENNY": "Jenny Metaverse DAO Token",
"UKG": "UnikoinGold",
"ULT": "Ultiledger",
"ULTC": "Umbrella",
@@ -9324,6 +11428,7 @@
"ULTIMA": "Ultima",
"ULTIMATEBOT": "Ultimate Tipbot",
"ULTRA": "Ultra",
+ "ULX": "ULTRON",
"UM": "UncleMine",
"UMA": "UMA",
"UMAD": "MADworld",
@@ -9355,15 +11460,18 @@
"UNI": "Uniswap Protocol Token",
"UNIBOT": "Unibot",
"UNIC": "Unicly",
+ "UNICE": "UNICE",
"UNICORN": "UNICORN Token",
"UNIDEXAI": "UniDexAI",
"UNIDX": "UniDex",
+ "UNIETH": "Universal ETH",
"UNIFY": "Unify",
"UNIM": "Unicorn Milk",
"UNIQ": "Uniqredit",
"UNIQUE": "Unique One",
"UNISTAKE": "Unistake",
"UNIT": "Universal Currency",
+ "UNITARYSTATUS": "UnitaryStatus Dollar",
"UNITED": "UnitedCoins",
"UNITRADE": "UniTrade",
"UNITS": "GameUnits",
@@ -9376,6 +11484,7 @@
"UNN": "UNION Protocol Governance Token",
"UNO": "UnoRe",
"UNOB": "Unobtanium",
+ "UNP": "UNIPOLY",
"UNQ": "UNQ",
"UNQT": "Unique Utility Token",
"UNR": "Unirealchain",
@@ -9390,13 +11499,16 @@
"UPCG": "Upcomings",
"UPCO2": "Universal Carbon",
"UPCOIN": "UPcoin",
+ "UPDOG": "What's Updog",
"UPEUR": "Universal Euro",
"UPI": "Pawtocol",
+ "UPLOAD": "Upload Token",
"UPO": "UpOnly",
"UPP": "Sentinel Protocol",
"UPR": "Upfire",
"UPRO": "ULTRAPRO",
"UPS": "UPFI Network",
+ "UPTOS": "UPTOS",
"UPUNK": "Unicly CryptoPunks Collection",
"UPUSD": "Universal US Dollar",
"UPX": "uPlexa",
@@ -9404,21 +11516,25 @@
"UR": "UR",
"URAC": "Uranus",
"URALS": "Urals Coin",
+ "URFA": "Urfaspor Token",
"URO": "UroCoin",
"URQA": "UREEQA",
"URS": "URUS",
"URUS": "Urus Token",
"URX": "URANIUMX",
+ "USA": "DEDPRZ",
"USAT": "USAT",
"USC": "Ultimate Secure Cash",
"USCC": "USC",
"USCOIN": "USCoin",
"USDA": "USDA",
"USDAP": "Bond Appetite USD",
+ "USDB": "USD Bancor",
+ "USDBC": "Bridged USDC",
"USDC": "USD Coin",
"USDCASH": "USDCASH",
"USDD": "USDD",
- "USDE": "UnitaryStatus Dollar",
+ "USDE": "Ethena USDe",
"USDEBT": "USDEBT",
"USDEX": "eToro US Dollar",
"USDFL": "USDFreeLiquidity",
@@ -9427,6 +11543,7 @@
"USDI": "Interest Protocol USDi",
"USDJ": "USDJ",
"USDK": "USDK",
+ "USDM": "Mountain Protocol",
"USDN": "Neutrino USD",
"USDO": "USD Open Dollar",
"USDP": "Pax Dollar",
@@ -9435,6 +11552,8 @@
"USDS": "StableUSD",
"USDSB": "USDSB",
"USDT": "Tether",
+ "USDTV": "TetherTV",
+ "USDTZ": "USDtez",
"USDU": "Upper Dollar",
"USDV": "Verified USD",
"USDX": "USDX Stablecoin",
@@ -9443,20 +11562,27 @@
"USE": "Usechain Token",
"USEDCAR": "A Gently Used 2001 Honda",
"USG": "USGold",
+ "USH": "unshETHing_Token",
"USHARK": "uShark",
"USHI": "Ushi",
"USHIBA": "American Shiba",
"USK": "USK",
+ "USN": "USN",
"USNBT": "NuBits",
"USNOTA": "NOTA",
"USP": "USP Token",
"USPLUS": "Fluent Finance",
"UST": "Wrapped UST Token",
+ "USTB": "Superstate Short Duration U.S. Government Securities Fund",
"USTC": "TerraClassicUSD",
+ "USTCW": "TerraClassicUSD Wormhole",
+ "USTX": "UpStableToken",
+ "USV": "Universal Store of Value",
"USX": "USX Quantum",
"UT": "Ulord",
"UTBAI": "UTB.ai",
"UTC": "UltraCoin",
+ "UTG": "UltronGlow",
"UTH": "Uther",
"UTI": "Unicorn Technology International",
"UTIL": "Utility Coin",
@@ -9465,10 +11591,14 @@
"UTNP": "Universa",
"UTT": "United Traders Token",
"UTU": "UTU Protocol",
+ "UTX": "UTIX",
+ "UUSD": "Utopia USD",
"UUU": "U Network",
"UVT": "UvToken",
+ "UW3S": "Utility Web3Shot",
"UWU": "uwu",
"UX": "Umee",
+ "UXOS": "UXOS",
"UXP": "UXD Protocol",
"UZUMAKI": "Uzumaki Inu",
"UZX": "UZX",
@@ -9480,11 +11610,16 @@
"VAIOT": "VAIOT",
"VAIOTV1": "VAIOT v1",
"VAL": "Validity",
+ "VALAS": "Valas Finance",
"VALI": "VALIMARKET",
"VALID": "Validator Token",
"VALOR": "Valor Token",
"VALORBIT": "Valorbit",
"VALUE": "Value Liquidity",
+ "VAMPIRE": "Vampire Inu",
+ "VAN": "Vanspor Token",
+ "VANA": "Nirvana",
+ "VANCAT": "Vancat",
"VANRY": "Vanar Chain",
"VANT": "Vanta Network",
"VANY": "Vanywhere",
@@ -9492,7 +11627,10 @@
"VAPOR": "Vaporcoin",
"VARA": "Vara Network",
"VARIUS": "Varius",
+ "VARK": "Aardvark",
+ "VATR": "Vatra INU",
"VATRENI": "Croatian FF Fan Token",
+ "VAULT": "Vault Tech",
"VAULTCOIN": "VaultCoin",
"VBCH": "Venus BCH",
"VBETH": "Venus BETH",
@@ -9500,11 +11638,14 @@
"VBIT": "Valobit",
"VBK": "VeriBlock",
"VBNB": "Venus BNB",
+ "VBNT": "Bancor Governance Token",
"VBSC": "Votechain",
+ "VBSWAP": "vBSWAP",
"VBT": "VB Token",
"VBTC": "Venus BTC",
"VC": "VinuChain",
"VCAKE": "Venus CAKE",
+ "VCAT": "Vibing Cat",
"VCF": "Valencia CF Fan Token",
"VCG": "VCGamers",
"VCHF": "VNX Swiss Franc",
@@ -9518,8 +11659,10 @@
"VDOGE": "Venus Dogecoin",
"VDOT": "Venus DOT",
"VDR": "Vodra",
+ "VDT": "Vendetta",
"VDV": "VDV Token",
"VDX": "Vodi X",
+ "VDZ": "Voidz",
"VEC": "VECTOR",
"VEC2": "VectorCoin 2.0",
"VEE": "BLOCKv",
@@ -9527,8 +11670,12 @@
"VEEN": "LIVEEN",
"VEG": "BitVegan",
"VEGA": "Vega Protocol",
+ "VEGAS": "Vegasino",
+ "VEGE": "Vege Token",
"VEIL": "VEIL",
+ "VEKTOR": "VEKTOR",
"VELA": "Vela Token",
+ "VELAR": "Velar",
"VELO": "Velo",
"VELOD": "Velodrome Finance",
"VELOX": "Velox",
@@ -9536,7 +11683,10 @@
"VEMP": "vEmpire DDAO",
"VEN": "VeChain Old",
"VENA": "Vena Network",
+ "VENOM": "Venom",
+ "VENOMAI": "VENOM",
"VENT": "Vent Finance",
+ "VENTI": "VentiSwap",
"VENTION": "Vention",
"VENUS": "VenusEnergy",
"VEO": "Amoveo",
@@ -9548,8 +11698,11 @@
"VERSACE": "VERSACE",
"VERSE": "Verse",
"VERTEX": "Vertex",
+ "VERUM": "Verum Coin",
+ "VERVE": "Verve",
"VEST": "VestChain",
- "VESTA": "Vestarin",
+ "VESTARIN": "Vestarin",
+ "VESTATE": "Vestate",
"VET": "VeChain",
"VETH": "Venus ETH",
"VETME": "VetMe",
@@ -9559,6 +11712,7 @@
"VEXT": "Veloce",
"VFIL": "Venus Filecoin",
"VFOX": "VFOX",
+ "VFT": "Value Finance",
"VGO": "Vagabond",
"VGX": "Voyager Token",
"VHC": "Vault Hill City",
@@ -9570,8 +11724,10 @@
"VIC": "Viction",
"VICA": "ViCA Token",
"VICEX": "ViceToken",
+ "VICS": "RoboF",
"VICTORIUM": "Victorium",
"VID": "VideoCoin",
+ "VIDA": "Vidiachange",
"VIDT": "VIDT Datalink",
"VIDY": "Vidy",
"VIDYA": "Vidya",
@@ -9579,27 +11735,42 @@
"VIDZ": "PureVidz",
"VIEW": "Viewly",
"VIG": "TheVig",
+ "VIK": "VIKTAMA",
+ "VIKKY": "VikkyToken",
"VIM": "VicMove",
"VIN": "VinChain",
"VINCI": "VINCI",
"VINU": "Vita Inu",
"VIOR": "ViorCoin",
"VIP": "VIP Tokens",
+ "VIPER": "Viper Protocol",
"VIPS": "Vipstar Coin",
"VIRAL": "Viral Coin",
+ "VIRES": "Vires Finance",
+ "VIRTU": "VIRTUCLOUD",
+ "VIRTUAL": "Virtual Protocol",
+ "VIS": "Vigorus",
"VISIO": "Visio",
"VISION": "VisionGame",
"VISR": "Visor",
"VIT": "Vision Industry Token",
+ "VITA": "VitaDAO",
"VITAE": "Vitae",
"VITAFAST": "Molecules of Korolchuk IP-NFT",
+ "VITAL": "Vital Network",
"VITE": "VITE",
+ "VITRA": "Vitra Studios",
+ "VITY": "Vitteey",
"VIU": "Viuly",
"VIVID": "Vivid Coin",
"VIVO": "VIVO Coin",
+ "VIX": "VIXCO",
"VIZ": "Vision City",
+ "VIZION": "ViZion Protocol",
+ "VIZSLASWAP": "VizslaSwap",
"VKNF": "VKENAF",
"VLC": "Volcano Uni",
+ "VLK": "Vulkania",
"VLS": "Veles",
"VLT": "Veltor",
"VLTC": "Venus LTC",
@@ -9613,8 +11784,10 @@
"VME": "TrueVett",
"VMINT": "Volumint",
"VMPX": "VMPX (Ordinals)",
+ "VMS": "Vehicle Mining System",
"VMT": "Vemate",
"VNDC": "VNDC",
+ "VNDT": "Vendit ",
"VNES": "Vanesse",
"VNLNK": "VINLINK",
"VNM": "Venom",
@@ -9625,6 +11798,7 @@
"VNX": "VisionX",
"VNXAU": "VNX Gold",
"VNXLU": "VNX Exchange",
+ "VNY": "Vanity",
"VOCARE": "Vocare ex Machina",
"VOCO": "Provoco",
"VODKA": "Vodka Token",
@@ -9633,17 +11807,22 @@
"VOLLAR": "Vollar",
"VOLR": "Volare Network",
"VOLT": "Volt Inu",
+ "VOLTA": "Volta Club",
"VOLTOLD": "Volt Inu (Old)",
"VOLTV1": "Volt Inu v1",
"VOLTV2": "Volt Inu v2",
"VOLTZ": "Voltz",
+ "VONE": "Vone",
+ "VONSPEED": "Andrea Von Speed",
"VOOT": "VootCoin",
+ "VOPO": "VOPO",
"VOT": "Votecoin",
"VOW": "Vow",
"VOX": "Vox.Finance",
"VOXEL": "Voxies",
"VOY": "enVoy DeFi",
"VOYA": "Voyacoin",
+ "VP": "Torah Network",
"VPAD": "VLaunch",
"VPK": "Vulture Peak",
"VPND": "VaporNodes",
@@ -9654,6 +11833,7 @@
"VRA": "Verasity",
"VRC": "Virtual Coin",
"VRGW": "Virtual Reality Game World",
+ "VRH": "Versailles Heroes",
"VRL": "Virtual X",
"VRM": "Verium",
"VRN": "Varen",
@@ -9662,17 +11842,21 @@
"VRP": "Prosense.tv",
"VRS": "Veros",
"VRSC": "Verus Coin",
+ "VRSE": "CronosVerse",
+ "VRSW": "VirtuSwap",
"VRT": "Venus Reward Token",
"VRTX": "Vertex Protocol",
"VRTY": "Verity",
"VRX": "Verox",
+ "VS": "veSync",
"VSC": "Vyvo Coin",
"VSD": "Value Set Dollar",
"VSG": "Vitalik Smart Gas",
+ "VSHARE": "V3S Share",
"VSL": "vSlice",
"VSO": "Verso",
"VSP": "Vesper Finance",
- "VST": "VentiSwap",
+ "VSTA": "Vesta Finance",
"VSUI": "Volo Staked SUI",
"VSX": "Vsync",
"VSYS": "V Systems",
@@ -9684,32 +11868,43 @@
"VTM": "Victorieum",
"VTN": "Voltroon",
"VTOS": "VTOS",
+ "VTRO": "Vitruveo DEX",
"VTRX": "Venus TRX",
"VTS": "Veritise",
+ "VTU": "Virtu",
"VTUSD": "Venus TUSD",
"VTX": "Vortex DeFi",
"VTY": "Victoriouscoin",
"VUC": "Virta Unique Coin",
"VULC": "Vulcano",
"VUNI": "Venus UNI",
+ "VUZZ": "Vuzz AI",
"VV": "Virtual Versions",
"VVI": "VV Coin",
"VVS": "VVS Finance",
"VX": "ViteX Coin",
"VXL": "Voxel X Network",
"VXRP": "Venus XRP",
+ "VXT": "Voxto Amplify",
"VXV": "Vectorspace AI",
"VYBE": "Vybe",
+ "VYFI": "VyFinance",
"VYNC": "VYNK Chain",
"VZT": "Vezt",
+ "W": "Wormhole",
"W1": "W1",
"W12": "W12 Protocol",
+ "W2E": "Walk To Earn",
"W3C": "W3Coin",
+ "W3M": "Web3Met",
+ "W3S": "Web3Shot",
"W3W": "Web3 Whales",
"W8BIT": "8Bit Chain",
"WAB": "WABnetwork",
"WABI": "WABI",
"WACO": "Waste Digital Coin",
+ "WAD": "WardenSwap",
+ "WADA": "Wrapped Cardano",
"WAG": "WagyuSwap",
"WAGE": "Digiwage",
"WAGG": "Waggle Network",
@@ -9720,6 +11915,7 @@
"WAGON": "Wagon Network",
"WAI": "Wanaka Farm WAIRERE Token",
"WAIF": "Waifu Token",
+ "WAIFU": "Waifu",
"WAIT": "Hourglass",
"WAL": "The Wasted Lands",
"WALK": "Walk Token",
@@ -9732,14 +11928,20 @@
"WANA": "Wanaka Farm",
"WANATHA": "Wrapped ANATHA",
"WAND": "WandX",
+ "WANKO": "WANKO•MANKO•RUNES",
+ "WANNA": "Wanna Bot",
"WANUSDT": "wanUSDT",
"WAR": "WeStarter",
"WARP": "WarpCoin",
+ "WARPED": "Warped Games",
+ "WARPIE": "Warpie",
"WARS": "MetaWars",
"WAS": "Wasder",
"WASABI": "WasabiX",
+ "WASD": "WASD Studios",
"WASH": "WashingtonCoin",
"WASSIE": "WASSIE",
+ "WASTR": "Wrapped Astar",
"WATER": "doginwotah",
"WAVES": "Waves",
"WAXE": "WAXE",
@@ -9748,30 +11950,44 @@
"WAY": "WayCoin",
"WBB": "Wild Beast Coin",
"WBBC": "Wibcoin",
+ "WBCH": "Wrapped Bitcoin Cash",
+ "WBESC": "Wrapped BESC",
"WBET": "Wavesbet",
"WBETH": "Wrapped Beacon ETH",
"WBIND": "Wrapped BIND",
"WBN": "Wisdom Bank Network",
"WBNB": "Wrapped BNB",
+ "WBOND": "War Bond Token",
+ "WBONE": "Shibarium Wrapped BONE",
+ "WBONES": "Wrapped BONES",
"WBS": "Websea",
"WBT": "WhiteBIT Token",
"WBTC": "Wrapped Bitcoin",
"WBTCWXG": "WBTC-WXG",
"WBX": "WiBX",
"WCA": "WCAPES",
+ "WCANTO": "Wrapped CANTO",
+ "WCAT": "Sol Cat Warrior",
"WCC": "Wincash Coin",
"WCCX": "Wrapped Conceal",
+ "WCDONALDS": "WC Donalds",
+ "WCELL": "Wrapped CellMates",
"WCELO": "Wrapped Celo",
"WCFG": "Wrapped Centrifuge",
+ "WCFX": "Wrapped Conflux",
"WCG": "World Crypto Gold",
+ "WCKB": "Wrapped Nervos Network",
"WCOIN": "WCoin",
+ "WCORE": "Wrapped Core",
"WCS": "Weecoins",
"WCSOV": "Wrapped CrownSterling",
"WCT": "Waves Community Token",
+ "WCT1WCT1": "Wrapped Car Token 1",
"WCUSD": "Wrapped Celo Dollar",
"WDC": "WorldCoin",
"WDOG": "Winterdog",
"WDOGE": "Wrapped Dogecoin",
+ "WDOT": "WDOT",
"WDR": "Wider Coin",
"WDX": "WeiDex",
"WE": "WeBuy",
@@ -9782,17 +11998,22 @@
"WEB3": "WEB3 Inu",
"WEB4": "WEB4 AI",
"WEB5": "WEB5 Inu",
+ "WEBAI": "Web Ai",
"WEBC": "Webchain",
"WEBD": "WebDollar",
+ "WEBSS": "Websser",
"WEC": "Whole Earth Coin",
+ "WECO": "WECOIN",
"WED": "Wednesday Inu",
"WEETH": "Wrapped eETH",
"WEFI": "WeFi",
"WEGEN": "WeGen Platform",
+ "WEGLD": "Wrapped EGLD",
"WELA": "Wrapped Elastos",
"WELD": "Weld",
"WELL": "Moonwell",
"WELLTOKEN": "Well",
+ "WELSH": "Welshcorgicoin",
"WELT": "Fabwelt",
"WELUPS": "Welups Blockchain",
"WEMIX": "WEMIX",
@@ -9803,18 +12024,25 @@
"WET": "WeShow Token",
"WETH": "WETH",
"WETHV1": "WETH v1",
+ "WETHW": "Wrapped EthereumPoW",
"WEVE": "veDAO",
+ "WEVMOS": "Wrapped Evmos",
"WEWE": "WEWE",
"WEX": "WaultSwap",
"WEXO": "Wexo",
+ "WEXPOLY": "WaultSwap Polygon",
"WFAI": "WaifuAI",
"WFIL": "Wrapped Filecoin",
+ "WFLAMA": "WIFLAMA",
"WFLOW": "Wrapped Flow",
+ "WFO": "WoofOracle",
"WFT": "Windfall Token",
+ "WFUSE": "Wrapped Fuse",
"WFX": "WebFlix",
"WGC": "Green Climate World",
"WGHOST": "Wrapped GhostbyMcAfee",
"WGL": "Wiggly Finance",
+ "WGLMR": "Wrapped Moonbeam",
"WGO": "WavesGO",
"WGP": "W Green Pay",
"WGR": "Wagerr",
@@ -9832,12 +12060,21 @@
"WHITE": "Whiteheart",
"WHL": "WhaleCoin",
"WHO": "Truwho",
+ "WHOREN": "elizabath whoren",
+ "WHT": "Wrapped Huobi Token",
+ "WHTETGRMOON": "WHITE TIGER MOON",
+ "WHTGRPXL": "White Tiger Pixel",
+ "WHX": "WHITEX",
"WIB": "Wibson",
"WIC": "Wi Coin",
"WICC": "WaykiChain",
"WIF": "dogwifhat",
"WIFEDOGE": "Wifedoge",
"WIFI": "Wifi Coin",
+ "WIFS": "dogwifscarf",
+ "WIFSA": "dogwifsaudihat",
+ "WIGO": "WigoSwap",
+ "WIK": "Wicked Bet",
"WIKEN": "Project WITH",
"WIKI": "Wiki Token",
"WILC": "Wrapped ILCOIN",
@@ -9853,19 +12090,25 @@
"WINRY": "Winry Inu",
"WINT": "WinToken",
"WINTER": "Winter",
+ "WINU": "Walter Inu",
"WIOTX": "Wrapped IoTeX",
"WIRTUAL": "Wirtual",
"WIS": "Experty Wisdom Token",
"WISC": "WisdomCoin",
"WISE": "Wise Token",
"WISH": "MyWish",
+ "WISP": "Whisper",
"WISTA": "Wistaverse",
"WIT": "Witnet",
"WITCH": "Witch",
"WITCOIN": "Witcoin",
"WIX": "Wixlar",
"WJEWEL": "WJEWEL",
+ "WJXN": "Jax.Network",
+ "WKAI": "Wrapped KardiaChain",
+ "WKAS": "Wrapped Kaspa",
"WKAVA": "Wrapped Kava",
+ "WKC": "Wiki Cat",
"WKD": "Wakanda Inu",
"WLD": "Worldcoin",
"WLF": "Wolfs Group",
@@ -9874,6 +12117,7 @@
"WLKN": "Walken",
"WLO": "WOLLO",
"WLUNA": "Wrapped LUNA Token",
+ "WLUNC": "Wrapped LUNA Classic",
"WLXT": "Wallex Token",
"WMATIC": "Wrapped Matic",
"WMB": "WatermelonBlock",
@@ -9881,16 +12125,21 @@
"WMEMO": "Wonderful Memories",
"WMF": "Whale Maker Fund",
"WMINIMA": "Wrapped Minima",
+ "WMN": "WebMind Network",
"WMNT": "Wrapped Mantle",
"WMOXY": "Moxy",
"WMT": "World Mobile Token",
+ "WMW": "WoopMoney",
"WMX": "Wombex Finance",
+ "WMXWOM": "Wombex WOM",
"WNCG": "Wrapped NCG",
"WND": "WonderHero",
"WNDR": "Wonderman Nation",
+ "WNEAR": "Wrapped Near",
"WNEON": "Wrapped Neon EVM",
"WNET": "Wavesnode.net",
"WNK": "The Winkyverse",
+ "WNOW": "WalletNow",
"WNRZ": "WinPlay",
"WNT": "Wicrypt",
"WNXM": "Wrapped NXM",
@@ -9898,11 +12147,14 @@
"WNZ": "Winerz",
"WOA": "Wrapped Origin Axie",
"WOD": "World of Defish",
+ "WOETH": "Wrapped Origin Ether",
+ "WOFM": "World of Masters",
"WOID": "WORLD ID",
"WOJ": "Wojak Finance",
"WOJAK": "Wojak",
"WOJAK2": "Wojak 2.0 Coin",
"WOKT": "Wrapped OKT",
+ "WOL": "World of Legends",
"WOLF": "Landwolf",
"WOLFILAND": "Wolfiland",
"WOLFOF": "Wolf of Wall Street",
@@ -9911,10 +12163,12 @@
"WOM": "WOM",
"WOMB": "Wombat Exchange",
"WOMBAT": "Wombat",
+ "WOME": "WAR OF MEME",
"WOMEN": "WomenCoin",
"WOMI": "Wrapped ECOMI",
"WON": "WeBlock",
"WONDER": "Wonderland",
+ "WONE": "Wrapped Harmony",
"WOO": "WOO Network",
"WOOD": "Mindfolk Wood",
"WOOF": "Shibance Token",
@@ -9922,19 +12176,25 @@
"WOOL": "Wolf Game Wool",
"WOONK": "Woonkly",
"WOOO": "wooonen",
+ "WOOOOO": "Wooooo! Coin",
"WOOP": "Woonkly Power",
"WOP": "WorldPay",
+ "WOR": "Hollywood Capital Group WARRIOR",
"WORK": "Work X",
"WORLD": "World Token",
"WORM": "HealthyWorm",
"WORX": "Worx",
+ "WOS": "Wolf Of Solana",
"WOW": "WOWswap",
"WOWS": "Wolves of Wall Street",
"WOZX": "Efforce",
"WPC": "WePiggy Coin",
"WPE": "OPES (Wrapped PE)",
+ "WPEPE": "Wrapped Pepe",
"WPI": "Wrapped Pi",
+ "WPKT": "Wrapped PKT",
"WPLS": "Wrapped Pulse",
+ "WPOKT": "wrapped POKT",
"WPP": "Green Energy Token",
"WPR": "WePower",
"WQT": "Work Quest",
@@ -9943,18 +12203,22 @@
"WRLD": "NFT Worlds",
"WRONG": "The Wrong Token",
"WROSE": "Wrapped Rose",
- "WRT": "WRTcoin",
+ "WRT": "WRT Token",
+ "WRTCOIN": "WRTcoin",
"WRX": "WazirX",
"WRZ": "Weriz",
"WSB": "WallStreetBets DApp",
"WSBABY": "Wall Street Baby",
+ "WSBS": "Wall Street Bets Solana",
"WSCRT": "Secret ERC20",
"WSDOGE": "Doge of Woof Street",
"WSG": "Wall Street Games",
+ "WSHIB": "wShiba",
"WSI": "WeSendit",
"WSIENNA": "Sienna ERC20",
"WSM": "Wall Street Memes",
"WSPP": "Wolf Safe Poor People",
+ "WSTA": "Wrapped Statera",
"WSTETH": "Lido wstETH",
"WSTOR": "StorageChain",
"WSTR": "Wrapped Star",
@@ -9965,28 +12229,43 @@
"WTC": "Waltonchain",
"WTF": "Waterfall Governance",
"WTFT": "WTF Token",
+ "WTFUEL": "Wrapped TFUEL",
+ "WTG": "Watergate",
"WTK": "WadzPay Token",
"WTL": "Welltrado",
"WTN": "Wateenswap",
"WTON": "Wrapped TON Crystal",
+ "WTR": "Deepwaters",
"WTT": "Giga Watt",
+ "WTWOOL": "Wolf Town Wool",
+ "WUF": "WUFFI",
"WUST": "Wrapped UST Token",
+ "WW3": "WW3",
+ "WWAN": "Wrapped WAN",
"WWB": "Wowbit",
+ "WWD": "Wolf Works DAO",
"WWDOGE": "Wrapped WDOGE",
+ "WWEMIX": "WWEMIX",
+ "WWF": "WWF",
"WWY": "WeWay",
+ "WX": "WX Token",
"WXDAI": "Wrapped XDAI",
+ "WXDC": "Wrapped XDC",
"WXT": "WXT",
"WXTZ": "Wrapped Tezos",
"WYNN": "Anita Max Wynn",
"WYS": "Wysker",
"WZEC": "Wrapped Zcash",
+ "WZEDX": "Wrapped Zedxion",
"WZENIQ": "Wrapped Zeniq (ETH)",
+ "WZETA": "Wrapped Zeta",
"WZM": "Woozoo Music",
"WZRD": "Wizardia",
"X": "AI-X",
"X2": "X2Coin",
"X2Y2": "X2Y2",
"X42": "X42 Protocol",
+ "X7C": "X7 Coin",
"X7DAO": "X7DAO",
"X7R": "X7R",
"X8X": "X8Currency",
@@ -9994,9 +12273,11 @@
"XAEAXII": "XAEA-Xii Token",
"XAH": "Xahau",
"XAI": "Xai",
+ "XALGO": "Wrapped ALGO",
"XAMP": "Antiample",
"XANK": "Xank",
"XAP": "Apollon",
+ "XAR": "Arcana Network",
"XAS": "Asch",
"XAT": "ShareAt",
"XAUC": "XauCoin",
@@ -10012,21 +12293,28 @@
"XBI": "Bitcoin Incognito",
"XBL": "Billionaire Token",
"XBN": "Elastic BNB",
+ "XBNB": "PhoenixBNB",
"XBOND": "Bitacium",
"XBOT": "SocialXbotCoin",
"XBP": "Black Pearl Coin",
"XBS": "Bitstake",
"XBT": "Xbit",
+ "XBTC": "XenBitcoin",
+ "XBTC21": "Bitcoin 21",
"XBTS": "Beats",
"XBX": "BiteX",
"XBY": "XTRABYTES",
"XC": "X11 Coin",
"XCAD": "XCAD Network",
+ "XCAL": "3xcalibur",
"XCASH": "X-CASH",
+ "XCASTR": "Astar",
+ "XCDOT": "xcDOT",
"XCE": "Cerium",
"XCEL": "XcelTrip",
"XCEPT": "XCeption",
"XCF": "Cenfura Token",
+ "XCFX": "Nucleon",
"XCG": "Xchange",
"XCH": "Chia",
"XCHF": "CryptoFranc",
@@ -10052,7 +12340,7 @@
"XDAO": "XDAO",
"XDATA": "Streamr XDATA",
"XDB": "DigitalBits",
- "XDC": "Xinfin Network",
+ "XDC": "XDC Network",
"XDCE": "XinFin Coin",
"XDEF2": "Xdef Finance",
"XDEFI": "XDEFI",
@@ -10066,14 +12354,17 @@
"XDQ": "Dirac Coin",
"XEC": "eCash",
"XED": "Exeedme",
+ "XEDO": "XedoAI",
"XEL": "Xel",
"XELS": "XELS Coin",
"XEM": "NEM",
"XEN": "XEN Crypto",
"XEND": "Xend Finance",
"XENIX": "XenixCoin",
+ "XENO": "Xeno",
"XENOVERSE": "Xenoverse",
"XEP": "Electra Protocol",
+ "XERS": "X Project",
"XES": "Proxeus",
"XET": "Xfinite Entertainment Token",
"XETA": "Xana",
@@ -10088,11 +12379,14 @@
"XFYI": "XCredit",
"XG": "XG Sports",
"XGB": "GoldenBird",
+ "XGC": "Xiglute Coin",
"XGEM": "Exchange Genesis Ethlas Medium",
"XGLI": "Glitter Finance",
+ "XGOLD": "XGOLD COIN",
"XGOX": "Go!",
"XGPT": "XGPT",
"XGR": "GoldReserve",
+ "XGRO": "Growth DeFi",
"XGT": "Xion Finance",
"XHI": "HiCoin",
"XHT": "HollaEx",
@@ -10104,10 +12398,12 @@
"XIDR": "XIDR",
"XIL": "Xillion",
"XIN": "Mixin",
+ "XINU": "XINU",
"XIO": "Blockzero Labs",
"XIOS": "Xios",
"XIOT": "Xiotri",
"XIV": "Project Inverse",
+ "XJEWEL": "xJEWEL",
"XJO": "JouleCoin",
"XKI": "Ki",
"XLA": "Scala",
@@ -10115,7 +12411,9 @@
"XLB": "LibertyCoin",
"XLC": "LeviarCoin",
"XLD": "Xcel Defi",
+ "XLIST": "XList",
"XLM": "Stellar",
+ "XLN": "LunaOne",
"XLQ": "Alqo",
"XLR": "Solaris",
"XLT": "Nexalt",
@@ -10124,6 +12422,7 @@
"XMASGROK": "Xmas Grok",
"XMC": "Monero Classic",
"XMCC": "Monoeci",
+ "XMETA": "TTX METAVERSE",
"XMG": "Coin Magi",
"XMN": "Motion",
"XMO": "Monero Original",
@@ -10145,15 +12444,19 @@
"XNL": "Chronicle",
"XNN": "Xenon",
"XNO": "Xeno Token",
+ "XNP": "ExenPay Token",
"XNS": "Insolar",
"XNT": "Exenium",
+ "XNV": "Nerva",
"XNX": "XanaxCoin",
"XODEX": "Xodex",
+ "XOLO": "Xoloitzcuintli",
"XOR": "Sora",
"XOT": "Okuru",
"XOV": "XOVBank",
"XOX": "XOX Labs",
"XP": "Experience Points",
+ "XPA": "XPA",
"XPAT": "Bitnation Pangea",
"XPAY": "Wallet Pay",
"XPB": "Pebble Coin",
@@ -10168,6 +12471,7 @@
"XPLL": "ParallelChain",
"XPM": "PrimeCoin",
"XPN": "PANTHEON X",
+ "XPND": "Time Raiders",
"XPNET": "XP Network",
"XPO": "Opair",
"XPOKE": "PokeChain",
@@ -10186,24 +12490,38 @@
"XQC": "Quras Token",
"XQN": "Quotient",
"XQR": "Qredit",
+ "XQUOK": "XQUOK",
"XRA": "Xriba",
+ "XRAI": "X-Ratio A",
+ "XRAY": "Ray Network",
"XRC": "xRhodium",
"XRD": "Radix",
+ "XRDOGE": "XRdoge",
"XRE": "RevolverCoin",
+ "XRGB": "XRGB",
+ "XRISE": "Xrise",
"XRL": "Rialto.AI",
+ "XRLM": "xRealm.ai",
+ "XROOTAI": "XRootAI",
"XRP": "XRP",
"XRP2": "XRP2.0",
+ "XRP20": "XRP20",
+ "XRPAYNET": "XRPayNet",
"XRPC": "Xrp Classic",
+ "XRPCHAIN": "Ripple Chain",
"XRPH": "XRP Healthcare",
"XRT": "Robonomics Network",
"XRUN": "XRun",
"XRUNE": "Thorstarter",
+ "XSAUCE": "xSAUCE",
"XSC": "Hyperspace",
"XSD": "SounDAC",
"XSEED": "BitSeeds",
"XSGD": "XSGD",
"XSH": "SHIELD",
+ "XSHIB": "XSHIB",
"XSI": "Stability Shares",
+ "XSLR": "NovaXSolar",
"XSN": "StakeNet",
"XSP": "XSwap",
"XSPC": "SpectreSecurityCoin",
@@ -10214,19 +12532,24 @@
"XST": "StealthCoin",
"XSTAR": "StarCurve",
"XSTC": "Safe Trade Coin",
+ "XSTUSD": "SORA Synthetic USD",
"XSUSHI": "xSUSHI",
+ "XSWAP": "XSwap",
"XT": "XT.com Token",
"XT3": "Xt3ch",
"XTAG": "xHashtag",
"XTAL": "XTAL",
"XTC": "TileCoin",
+ "XTECH": "X-TECH",
"XTK": "xToken",
"XTM": "TORUM",
"XTO": "Tao",
"XTP": "Tap",
"XTR": "Xtreme",
"XTRA": "ExtraCredit",
+ "XTRACK": "Xtrack AI",
"XTREME": "ExtremeCoin",
+ "XTTB20": "XTblock",
"XTUSD": "XT Stablecoin XTUSD",
"XTX": "Xtock",
"XTZ": "Tezos",
@@ -10235,6 +12558,7 @@
"XUN": "UltraNote",
"XUP": "UPGRADE",
"XUPS": "Xups",
+ "XUV": "XUV Coin",
"XVC": "Vcash",
"XVE": "The Vegan Initiative",
"XVG": "Verge",
@@ -10253,15 +12577,23 @@
"XYM": "Symbol",
"XYO": "XY Oracle",
"XYZ": "Universe.XYZ",
+ "Y2K": "Y2K",
+ "Y8U": "Y8U",
"YAC": "YAcCoin",
+ "YACHT": "YachtingVerse",
"YAE": "Cryptonovae",
"YAG": "Yaki Gold",
+ "YAK": "Yield Yak",
+ "YAKS": "YakDAO",
"YAKU": "Yaku",
"YAM": "YAM",
+ "YAMA": "YAMA Inu",
"YAMV1": "YAM v1",
"YAMV2": "YAM v2",
+ "YAOYAO": "Yaoyao's Cat",
"YAP": "Yap Stone",
"YARL": "Yarloo",
+ "YAW": "Yawww",
"YAXIS": "yAxis",
"YAY": "YAY Games",
"YAYCOIN": "YAYcoin",
@@ -10280,8 +12612,10 @@
"YEFI": "YeFi",
"YEL": "Yel.Finance",
"YEON": "Yeon",
+ "YEPE": "Yellow Pepe",
"YES": "Yes World",
"YESCOIN": "YesCoin",
+ "YESP": "Yesports",
"YETI": "Yeti Finance",
"YETU": "Yetucoin",
"YFARM": "YFARM Token",
@@ -10305,45 +12639,63 @@
"YFX": "Your Futures Exchange",
"YGG": "Yield Guild Games",
"YIELD": "Yield Protocol",
+ "YIELDX": "Yield Finance",
+ "YIKES": "Yikes Dog",
"YIN": "YIN Finance",
"YINBI": "Yinbi",
+ "YLC": "YoloCash",
"YLD": "YIELD App",
"YLDY": "Yieldly",
"YMC": "YamahaCoin",
+ "YMS": "Yeni Malatyaspor Token",
"YO": "Yobit Token",
"YOBASE": "All Your Base",
"YOC": "YoCoin",
"YOCO": "YocoinYOCO",
"YOD": "Year of the Dragon",
+ "YODE": "YodeSwap",
"YOLO": "YoloNolo",
+ "YOM": "YOM",
"YOOSHI": "YooShi",
"YOP": "Yield Optimization Platform & Protocol",
+ "YOSHI": "Yoshi.exchange",
+ "YOTD": "Year of the Dragon",
"YOTO": "yotoshi",
"YOU": "YOU Chain",
"YOUC": "yOUcash",
+ "YOURAI": "YOUR AI",
"YOVI": "YobitVirtualCoin",
"YOYOW": "Yoyow",
+ "YPC": "YoungParrot",
"YPIE": "PieDAO Yearn Ecosystem Pie",
"YSAFE": "yieldfarming.insure",
"YSEC": "Yearn Secure",
"YSR": "Ystar",
"YTA": "YottaChain",
"YTN": "YENTEN",
+ "YTS": "YetiSwap",
+ "YU": "BOUNTYKINDS",
"YUANG": "Yuang Coin",
"YUCJ": "Yu Coin",
"YUCT": "Yucreat",
"YUDI": "Yudi",
+ "YUGE": "YUGE COIN",
+ "YUKI": "YUKI",
"YUKKY": "YUKKY",
"YUM": "Yumerium",
"YUMMI": "Yummi Universe",
"YUMMY": "Yummy",
"YUP": "Crowdholding",
+ "YURI": "YURI",
"YUSE": "Yuse Token",
"YUSRA": "YUSRA",
+ "YUZU": "YuzuSwap",
"YVBOOST": "Yearn Compounding veCRV yVault",
"YVS": "YVS.Finance",
+ "YYAVAX": "Yield Yak AVAX",
"YYE": "YYE Energy",
"YYFI": "YYFI.Protocol",
+ "Z3": "Z-Cubed",
"ZABAKU": "Zabaku Inu",
"ZAFI": "ZakumiFi",
"ZAI": "Zero Collateral Dai",
@@ -10351,7 +12703,9 @@
"ZAM": "Zamio",
"ZAMZAM": "ZAMZAM",
"ZANO": "Zano",
+ "ZAO": "zkTAO",
"ZAP": "Zap",
+ "ZARP": "ZARP Stablecoin",
"ZARX": "eToro South African Rand",
"ZASH": "ZIMBOCASH",
"ZAT": "ZatGo",
@@ -10369,13 +12723,16 @@
"ZCON": "Zcon Protocol",
"ZCOR": "Zrocor",
"ZCR": "ZCore",
+ "ZCULT": "Zkcult",
"ZCX": "Unizen",
"ZDEX": "Zeedex",
"ZDR": "Zloadr",
+ "ZEBU": "ZEBU",
"ZEC": "ZCash",
"ZECD": "ZCashDarkCoin",
"ZED": "ZedCoins",
"ZEDTOKEN": "Zed Token",
+ "ZEDX": "ZEDXION",
"ZEDXION": "Zedxion",
"ZEE": "ZeroSwap",
"ZEFI": "ZCore Finance",
@@ -10384,13 +12741,15 @@
"ZEL": "Zelcash",
"ZELIX ": "ZELIX",
"ZEN": "Horizen",
+ "ZENC": "Zenc Coin",
+ "ZEND": "zkLend",
"ZENF": "Zenland",
"ZENI": "Zennies",
"ZENIQ": "Zeniq Coin",
"ZENITH": "Zenith Chain",
"ZEON": "Zeon Network",
"ZEP": "Zeppelin Dao",
- "ZEPH": "Zeph",
+ "ZEPH": "Zephyr Protocol",
"ZER": "Zero",
"ZERO": "Analysoor",
"ZEROB": "ZeroBank",
@@ -10402,15 +12761,20 @@
"ZETA": "ZetaChain",
"ZETRIX": "Zetrix",
"ZEUM": "Colizeum",
+ "ZEUS": "Zeus Network",
"ZEXI": "ZEXICON",
"ZF": "zkSwap Finance ",
"ZFL": "Zuflo Coin",
+ "ZFLOKI": "zkFloki",
"ZFM": "ZFMCOIN",
"ZGD": "ZambesiGold",
+ "ZGEM": "GemSwap",
"ZIG": "Zignaly",
"ZIK": "Ziktalk",
"ZIL": "Zilliqa",
"ZILBERCOIN": "Zilbercoin",
+ "ZILLIONXO": "ZILLION AAKAR XO",
+ "ZILPEPE": "ZilPepe",
"ZINC": "ZINC",
"ZINU": "Zombie Inu",
"ZIP": "Zipper",
@@ -10419,11 +12783,19 @@
"ZIX": "ZIX Token",
"ZIZY": "ZIZY",
"ZJLT": "ZJLT Distributed Factoring Network",
+ "ZK": "Polyhedra Network",
+ "ZKARCH": "zkArchive",
+ "ZKB": "ZKBase",
"ZKBOB": "BOB",
+ "ZKDOGE": "zkDoge",
"ZKF": "ZKFair",
+ "ZKHIVE": "zkHive",
"ZKID": "zkSync id",
+ "ZKLAB": "zkSync Labs",
+ "ZKLK": "ZkLock",
"ZKML": "zKML",
"ZKP": "Panther Protocol",
+ "ZKPAD": "zkLaunchpad",
"ZKPEPE": "ZKPEPEs",
"ZKS": "ZKSpace",
"ZKSHIB": "zkShib",
@@ -10444,8 +12816,10 @@
"ZNE": "ZoneCoin",
"ZNN": "Zenon",
"ZNT": "Zenith Finance",
+ "ZNX": "ZENEX",
"ZNY": "BitZeny",
"ZNZ": "ZENZO",
+ "ZOA": "Zone of Avoidance",
"ZOC": "01coin",
"ZODI": "Zodium",
"ZOE": "Zoe Cash",
@@ -10455,6 +12829,7 @@
"ZONX": "METAZONX",
"ZOO": "ZooKeeper",
"ZOOM": "ZoomCoin",
+ "ZOOMER": "Zoomer Coin",
"ZOON": "CryptoZoon",
"ZOOT": "Zoo Token",
"ZORA": "Zoracles",
@@ -10463,7 +12838,9 @@
"ZP": "Zen Protocol",
"ZPAE": "ZelaaPayAE",
"ZPAY": "ZoidPay",
+ "ZPC": "Zen Panda Coin",
"ZPR": "ZPER",
+ "ZPRO": "ZAT Project",
"ZPT": "Zeepin",
"ZPTC": "Zeptacoin",
"ZRC": "ZrCoin",
@@ -10476,6 +12853,7 @@
"ZTG": "Zeitgeist",
"ZTX": "ZTX",
"ZUC": "Zeux",
+ "ZUCKPEPE": "ZuckPepe",
"ZUKI": "Zuki Moba",
"ZUM": "ZumCoin",
"ZUNA": "ZUNA",
@@ -10491,6 +12869,7 @@
"ZXT": "Zcrypt",
"ZYD": "ZayedCoin",
"ZYN": "Zynecoin",
+ "ZYPTO": "Zypto Token",
"ZYR": "Zyrri",
"ZYRO": "Zyro",
"ZYTARA": "Zytara dollar",
@@ -10502,6 +12881,5 @@
"gOHM": "Governance OHM",
"redBUX": "redBUX",
"sOHM": "Staked Olympus",
- "sols": "SOLS",
"wsOHM": "Wrapped Staked Olympus"
}
From e31b4c64cb6bcb033a08059bdf25ba604162a3a8 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sun, 19 May 2024 18:13:14 +0200
Subject: [PATCH 03/92] Feature/refactor holding detail dialog to standalone
(#3407)
* Refactor holding detail dialog to standalone
* Update changelog
---
CHANGELOG.md | 1 +
... => portfolio-holding-detail.interface.ts} | 2 +-
.../src/app/portfolio/portfolio.controller.ts | 4 +-
.../src/app/portfolio/portfolio.service.ts | 6 +-
apps/client/src/app/app.component.ts | 8 +--
.../holding-detail-dialog.component.scss} | 0
.../holding-detail-dialog.component.ts} | 56 +++++++++++++++----
.../holding-detail-dialog.html} | 0
.../interfaces/interfaces.ts | 2 +-
.../position-detail-dialog.module.ts | 40 -------------
apps/client/src/app/services/data.service.ts | 52 ++++++++---------
.../holdings-table.component.ts | 6 +-
12 files changed, 87 insertions(+), 90 deletions(-)
rename apps/api/src/app/portfolio/interfaces/{portfolio-position-detail.interface.ts => portfolio-holding-detail.interface.ts} (96%)
rename apps/client/src/app/components/{position-detail-dialog/position-detail-dialog.component.scss => holding-detail-dialog/holding-detail-dialog.component.scss} (100%)
rename apps/client/src/app/components/{position-detail-dialog/position-detail-dialog.component.ts => holding-detail-dialog/holding-detail-dialog.component.ts} (82%)
rename apps/client/src/app/components/{position-detail-dialog/position-detail-dialog.html => holding-detail-dialog/holding-detail-dialog.html} (100%)
rename apps/client/src/app/components/{position-detail-dialog => holding-detail-dialog}/interfaces/interfaces.ts (87%)
delete mode 100644 apps/client/src/app/components/position-detail-dialog/position-detail-dialog.module.ts
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 305f7fdc9..e2015e656 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
+- Refactored the holding detail dialog to a standalone component
- Refreshed the cryptocurrencies list
- Refactored various pages to standalone components
- Upgraded `body-parser` from version `1.20.1` to `1.20.2`
diff --git a/apps/api/src/app/portfolio/interfaces/portfolio-position-detail.interface.ts b/apps/api/src/app/portfolio/interfaces/portfolio-holding-detail.interface.ts
similarity index 96%
rename from apps/api/src/app/portfolio/interfaces/portfolio-position-detail.interface.ts
rename to apps/api/src/app/portfolio/interfaces/portfolio-holding-detail.interface.ts
index a32d47e21..3ce23a3bc 100644
--- a/apps/api/src/app/portfolio/interfaces/portfolio-position-detail.interface.ts
+++ b/apps/api/src/app/portfolio/interfaces/portfolio-holding-detail.interface.ts
@@ -7,7 +7,7 @@ import {
import { Account, Tag } from '@prisma/client';
-export interface PortfolioPositionDetail {
+export interface PortfolioHoldingDetail {
accounts: Account[];
averagePrice: number;
dataProviderInfo: DataProviderInfo;
diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts
index ed3c0f174..66419c578 100644
--- a/apps/api/src/app/portfolio/portfolio.controller.ts
+++ b/apps/api/src/app/portfolio/portfolio.controller.ts
@@ -51,7 +51,7 @@ import { AssetClass, AssetSubClass } from '@prisma/client';
import { Big } from 'big.js';
import { StatusCodes, getReasonPhrase } from 'http-status-codes';
-import { PortfolioPositionDetail } from './interfaces/portfolio-position-detail.interface';
+import { PortfolioHoldingDetail } from './interfaces/portfolio-holding-detail.interface';
import { PortfolioService } from './portfolio.service';
@Controller('portfolio')
@@ -569,7 +569,7 @@ export class PortfolioController {
@Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string,
@Param('dataSource') dataSource,
@Param('symbol') symbol
- ): Promise {
+ ): Promise {
const position = await this.portfolioService.getPosition(
dataSource,
impersonationId,
diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts
index a98887ca9..b7c7bd0ae 100644
--- a/apps/api/src/app/portfolio/portfolio.service.ts
+++ b/apps/api/src/app/portfolio/portfolio.service.ts
@@ -77,7 +77,7 @@ import {
PerformanceCalculationType,
PortfolioCalculatorFactory
} from './calculator/portfolio-calculator.factory';
-import { PortfolioPositionDetail } from './interfaces/portfolio-position-detail.interface';
+import { PortfolioHoldingDetail } from './interfaces/portfolio-holding-detail.interface';
import { RulesService } from './rules.service';
const asiaPacificMarkets = require('../../assets/countries/asia-pacific-markets.json');
@@ -602,7 +602,7 @@ export class PortfolioService {
aDataSource: DataSource,
aImpersonationId: string,
aSymbol: string
- ): Promise {
+ ): Promise {
const userId = await this.getUserId(aImpersonationId, this.request.user.id);
const user = await this.userService.user({ id: userId });
const userCurrency = this.getUserCurrency(user);
@@ -693,7 +693,7 @@ export class PortfolioService {
transactionCount
} = position;
- const accounts: PortfolioPositionDetail['accounts'] = uniqBy(
+ const accounts: PortfolioHoldingDetail['accounts'] = uniqBy(
orders.filter(({ Account }) => {
return Account;
}),
diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts
index 8b6a7ddc3..08cc915bd 100644
--- a/apps/client/src/app/app.component.ts
+++ b/apps/client/src/app/app.component.ts
@@ -1,3 +1,5 @@
+import { GfHoldingDetailDialogComponent } from '@ghostfolio/client/components/holding-detail-dialog/holding-detail-dialog.component';
+import { HoldingDetailDialogParams } from '@ghostfolio/client/components/holding-detail-dialog/interfaces/interfaces';
import { getCssVariable } from '@ghostfolio/common/helper';
import { InfoItem, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
@@ -26,8 +28,6 @@ import { DeviceDetectorService } from 'ngx-device-detector';
import { Subject } from 'rxjs';
import { filter, takeUntil } from 'rxjs/operators';
-import { PositionDetailDialogParams } from './components/position-detail-dialog/interfaces/interfaces';
-import { PositionDetailDialog } from './components/position-detail-dialog/position-detail-dialog.component';
import { DataService } from './services/data.service';
import { ImpersonationStorageService } from './services/impersonation-storage.service';
import { TokenStorageService } from './services/token-storage.service';
@@ -246,9 +246,9 @@ export class AppComponent implements OnDestroy, OnInit {
.subscribe((user) => {
this.user = user;
- const dialogRef = this.dialog.open(PositionDetailDialog, {
+ const dialogRef = this.dialog.open(GfHoldingDetailDialogComponent, {
autoFocus: false,
- data: {
+ data: {
dataSource,
symbol,
baseCurrency: this.user?.settings?.baseCurrency,
diff --git a/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.component.scss b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.scss
similarity index 100%
rename from apps/client/src/app/components/position-detail-dialog/position-detail-dialog.component.scss
rename to apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.scss
diff --git a/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.component.ts b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
similarity index 82%
rename from apps/client/src/app/components/position-detail-dialog/position-detail-dialog.component.ts
rename to apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
index 2a0303686..6ac058f7e 100644
--- a/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.component.ts
+++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
@@ -1,4 +1,7 @@
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface';
+import { GfAccountsTableModule } from '@ghostfolio/client/components/accounts-table/accounts-table.module';
+import { GfDialogFooterModule } from '@ghostfolio/client/components/dialog-footer/dialog-footer.module';
+import { GfDialogHeaderModule } from '@ghostfolio/client/components/dialog-header/dialog-header.module';
import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { DATE_FORMAT, downloadAsFile } from '@ghostfolio/common/helper';
@@ -8,9 +11,16 @@ import {
LineChartItem,
User
} from '@ghostfolio/common/interfaces';
+import { GfActivitiesTableComponent } from '@ghostfolio/ui/activities-table';
+import { GfDataProviderCreditsComponent } from '@ghostfolio/ui/data-provider-credits';
import { translate } from '@ghostfolio/ui/i18n';
+import { GfLineChartComponent } from '@ghostfolio/ui/line-chart';
+import { GfPortfolioProportionChartComponent } from '@ghostfolio/ui/portfolio-proportion-chart';
+import { GfValueComponent } from '@ghostfolio/ui/value';
+import { CommonModule } from '@angular/common';
import {
+ CUSTOM_ELEMENTS_SCHEMA,
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
@@ -18,24 +28,50 @@ import {
OnDestroy,
OnInit
} from '@angular/core';
-import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
+import { MatButtonModule } from '@angular/material/button';
+import { MatChipsModule } from '@angular/material/chips';
+import {
+ MAT_DIALOG_DATA,
+ MatDialogModule,
+ MatDialogRef
+} from '@angular/material/dialog';
import { SortDirection } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table';
+import { MatTabsModule } from '@angular/material/tabs';
import { Account, Tag } from '@prisma/client';
import { format, isSameMonth, isToday, parseISO } from 'date-fns';
+import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
-import { PositionDetailDialogParams } from './interfaces/interfaces';
+import { HoldingDetailDialogParams } from './interfaces/interfaces';
@Component({
- host: { class: 'd-flex flex-column h-100' },
- selector: 'gf-position-detail-dialog',
changeDetection: ChangeDetectionStrategy.OnPush,
- templateUrl: 'position-detail-dialog.html',
- styleUrls: ['./position-detail-dialog.component.scss']
+ host: { class: 'd-flex flex-column h-100' },
+ imports: [
+ CommonModule,
+ GfAccountsTableModule,
+ GfActivitiesTableComponent,
+ GfDataProviderCreditsComponent,
+ GfDialogFooterModule,
+ GfDialogHeaderModule,
+ GfLineChartComponent,
+ GfPortfolioProportionChartComponent,
+ GfValueComponent,
+ MatButtonModule,
+ MatChipsModule,
+ MatDialogModule,
+ MatTabsModule,
+ NgxSkeletonLoaderModule
+ ],
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
+ selector: 'gf-holding-detail-dialog',
+ standalone: true,
+ styleUrls: ['./holding-detail-dialog.component.scss'],
+ templateUrl: 'holding-detail-dialog.html'
})
-export class PositionDetailDialog implements OnDestroy, OnInit {
+export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
public accounts: Account[];
public activities: Activity[];
public assetClass: string;
@@ -80,14 +116,14 @@ export class PositionDetailDialog implements OnDestroy, OnInit {
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
- public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data: PositionDetailDialogParams,
+ public dialogRef: MatDialogRef,
+ @Inject(MAT_DIALOG_DATA) public data: HoldingDetailDialogParams,
private userService: UserService
) {}
public ngOnInit() {
this.dataService
- .fetchPositionDetail({
+ .fetchHoldingDetail({
dataSource: this.data.dataSource,
symbol: this.data.symbol
})
diff --git a/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
similarity index 100%
rename from apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
rename to apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
diff --git a/apps/client/src/app/components/position-detail-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts
similarity index 87%
rename from apps/client/src/app/components/position-detail-dialog/interfaces/interfaces.ts
rename to apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts
index bbededf57..c6cfce1ee 100644
--- a/apps/client/src/app/components/position-detail-dialog/interfaces/interfaces.ts
+++ b/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts
@@ -2,7 +2,7 @@ import { ColorScheme } from '@ghostfolio/common/types';
import { DataSource } from '@prisma/client';
-export interface PositionDetailDialogParams {
+export interface HoldingDetailDialogParams {
baseCurrency: string;
colorScheme: ColorScheme;
dataSource: DataSource;
diff --git a/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.module.ts b/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.module.ts
deleted file mode 100644
index 751c645e5..000000000
--- a/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.module.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { GfAccountsTableModule } from '@ghostfolio/client/components/accounts-table/accounts-table.module';
-import { GfDialogFooterModule } from '@ghostfolio/client/components/dialog-footer/dialog-footer.module';
-import { GfDialogHeaderModule } from '@ghostfolio/client/components/dialog-header/dialog-header.module';
-import { GfActivitiesTableComponent } from '@ghostfolio/ui/activities-table';
-import { GfDataProviderCreditsComponent } from '@ghostfolio/ui/data-provider-credits';
-import { GfLineChartComponent } from '@ghostfolio/ui/line-chart';
-import { GfPortfolioProportionChartComponent } from '@ghostfolio/ui/portfolio-proportion-chart';
-import { GfValueComponent } from '@ghostfolio/ui/value';
-
-import { CommonModule } from '@angular/common';
-import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
-import { MatButtonModule } from '@angular/material/button';
-import { MatChipsModule } from '@angular/material/chips';
-import { MatDialogModule } from '@angular/material/dialog';
-import { MatTabsModule } from '@angular/material/tabs';
-import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
-
-import { PositionDetailDialog } from './position-detail-dialog.component';
-
-@NgModule({
- declarations: [PositionDetailDialog],
- imports: [
- CommonModule,
- GfAccountsTableModule,
- GfActivitiesTableComponent,
- GfDataProviderCreditsComponent,
- GfDialogFooterModule,
- GfDialogHeaderModule,
- GfLineChartComponent,
- GfPortfolioProportionChartComponent,
- GfValueComponent,
- MatButtonModule,
- MatChipsModule,
- MatDialogModule,
- MatTabsModule,
- NgxSkeletonLoaderModule
- ],
- schemas: [CUSTOM_ELEMENTS_SCHEMA]
-})
-export class GfPositionDetailDialogModule {}
diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts
index 8e5648d9e..18f1b966d 100644
--- a/apps/client/src/app/services/data.service.ts
+++ b/apps/client/src/app/services/data.service.ts
@@ -6,7 +6,7 @@ import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto
import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto';
import { Activities } from '@ghostfolio/api/app/order/interfaces/activities.interface';
import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto';
-import { PortfolioPositionDetail } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-position-detail.interface';
+import { PortfolioHoldingDetail } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-holding-detail.interface';
import { LookupItem } from '@ghostfolio/api/app/symbol/interfaces/lookup-item.interface';
import { SymbolItem } from '@ghostfolio/api/app/symbol/interfaces/symbol-item.interface';
import { UserItem } from '@ghostfolio/api/app/user/interfaces/user-item.interface';
@@ -325,6 +325,31 @@ export class DataService {
});
}
+ public fetchHoldingDetail({
+ dataSource,
+ symbol
+ }: {
+ dataSource: DataSource;
+ symbol: string;
+ }) {
+ return this.http
+ .get(
+ `/api/v1/portfolio/position/${dataSource}/${symbol}`
+ )
+ .pipe(
+ map((data) => {
+ if (data.orders) {
+ for (const order of data.orders) {
+ order.createdAt = parseISO((order.createdAt));
+ order.date = parseISO((order.date));
+ }
+ }
+
+ return data;
+ })
+ );
+ }
+
public fetchInfo(): InfoItem {
const info = cloneDeep((window as any).info);
const utmSource = <'ios' | 'trusted-web-activity'>(
@@ -563,31 +588,6 @@ export class DataService {
return this.http.get('/api/v1/portfolio/report');
}
- public fetchPositionDetail({
- dataSource,
- symbol
- }: {
- dataSource: DataSource;
- symbol: string;
- }) {
- return this.http
- .get(
- `/api/v1/portfolio/position/${dataSource}/${symbol}`
- )
- .pipe(
- map((data) => {
- if (data.orders) {
- for (const order of data.orders) {
- order.createdAt = parseISO((order.createdAt));
- order.date = parseISO((order.date));
- }
- }
-
- return data;
- })
- );
- }
-
public loginAnonymous(accessToken: string) {
return this.http.post(`/api/v1/auth/anonymous`, {
accessToken
diff --git a/libs/ui/src/lib/holdings-table/holdings-table.component.ts b/libs/ui/src/lib/holdings-table/holdings-table.component.ts
index 6e6cab9e8..d1964b06f 100644
--- a/libs/ui/src/lib/holdings-table/holdings-table.component.ts
+++ b/libs/ui/src/lib/holdings-table/holdings-table.component.ts
@@ -1,5 +1,5 @@
import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component';
-import { GfPositionDetailDialogModule } from '@ghostfolio/client/components/position-detail-dialog/position-detail-dialog.module';
+import { GfHoldingDetailDialogComponent } from '@ghostfolio/client/components/holding-detail-dialog/holding-detail-dialog.component';
import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module';
import { getLocale } from '@ghostfolio/common/helper';
import { PortfolioPosition, UniqueAsset } from '@ghostfolio/common/interfaces';
@@ -23,7 +23,7 @@ import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
import { MatSort, MatSortModule } from '@angular/material/sort';
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
import { Router, RouterModule } from '@angular/router';
-import { AssetClass, AssetSubClass } from '@prisma/client';
+import { AssetSubClass } from '@prisma/client';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
import { Subject, Subscription } from 'rxjs';
@@ -32,8 +32,8 @@ import { Subject, Subscription } from 'rxjs';
imports: [
CommonModule,
GfAssetProfileIconComponent,
+ GfHoldingDetailDialogComponent,
GfNoTransactionsInfoComponent,
- GfPositionDetailDialogModule,
GfSymbolModule,
GfValueComponent,
MatButtonModule,
From 741a0e36d2784ba62dbe782596760c15de372986 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Mon, 20 May 2024 21:28:43 +0200
Subject: [PATCH 04/92] Add links to tagged issues (#3405)
* help wanted
* good first issue
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index eaf641544..2d49124b8 100644
--- a/README.md
+++ b/README.md
@@ -275,7 +275,7 @@ Are you building your own project? Add the `ghostfolio` topic to your _GitHub_ r
Ghostfolio is **100% free** and **open source**. We encourage and support an active and healthy community that accepts contributions from the public - including you.
-Not sure what to work on? We have got some ideas. Please join the Ghostfolio [Slack](https://join.slack.com/t/ghostfolio/shared_invite/zt-vsaan64h-F_I0fEo5M0P88lP9ibCxFg) channel or post to [@ghostfolio\_](https://twitter.com/ghostfolio_) on _X_. We would love to hear from you.
+Not sure what to work on? We have [some ideas](https://github.com/ghostfolio/ghostfolio/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22), even for [newcomers](https://github.com/ghostfolio/ghostfolio/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). Please join the Ghostfolio [Slack](https://join.slack.com/t/ghostfolio/shared_invite/zt-vsaan64h-F_I0fEo5M0P88lP9ibCxFg) channel or post to [@ghostfolio\_](https://twitter.com/ghostfolio_) on _X_. We would love to hear from you.
If you like to support this project, get [**Ghostfolio Premium**](https://ghostfol.io/en/pricing) or [**Buy me a coffee**](https://www.buymeacoffee.com/ghostfolio).
From 8998c188364f86762fdaa64ba4bff4fb2ab39f33 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Wed, 22 May 2024 16:36:50 +0200
Subject: [PATCH 05/92] Feature/upgrade internationalized number to version
3.5.2 (#3412)
* Upgrade @internationalized/number to version 3.5.2
* Update changelog
---
CHANGELOG.md | 1 +
package.json | 2 +-
yarn.lock | 8 ++++----
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e2015e656..d871a1258 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Refactored the holding detail dialog to a standalone component
- Refreshed the cryptocurrencies list
- Refactored various pages to standalone components
+- Upgraded `@internationalized/number` from version `3.5.0` to `3.5.2`
- Upgraded `body-parser` from version `1.20.1` to `1.20.2`
- Upgraded `zone.js` from version `0.14.4` to `0.14.5`
diff --git a/package.json b/package.json
index 60dd48a20..3f3d25e3e 100644
--- a/package.json
+++ b/package.json
@@ -72,7 +72,7 @@
"@dfinity/identity": "0.15.7",
"@dfinity/principal": "0.15.7",
"@dinero.js/currencies": "2.0.0-alpha.8",
- "@internationalized/number": "3.5.0",
+ "@internationalized/number": "3.5.2",
"@nestjs/bull": "10.0.1",
"@nestjs/cache-manager": "2.1.0",
"@nestjs/common": "10.1.3",
diff --git a/yarn.lock b/yarn.lock
index 97b58c808..7b1fefcbb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3680,10 +3680,10 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917"
integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==
-"@internationalized/number@3.5.0":
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.5.0.tgz#9de6018424b441a6545f209afa286ad7df4a2906"
- integrity sha512-ZY1BW8HT9WKYvaubbuqXbbDdHhOUMfE2zHHFJeTppid0S+pc8HtdIxFxaYMsGjCb4UsF+MEJ4n2TfU7iHnUK8w==
+"@internationalized/number@3.5.2":
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.5.2.tgz#2edc8e830268dca7283dad6def728f34eb5b7fdc"
+ integrity sha512-4FGHTi0rOEX1giSkt5MH4/te0eHBq3cvAYsfLlpguV6pzJAReXymiYpE5wPCqKqjkUO3PIsyvk+tBiIV1pZtbA==
dependencies:
"@swc/helpers" "^0.5.0"
From 5d49ff7a4a20717f66a7698b113e451bc383defc Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Wed, 22 May 2024 16:39:39 +0200
Subject: [PATCH 06/92] Feature/improve usability of date range selector in
assistant (#3409)
* Improve usability of date range selector
* Update changelog
---
CHANGELOG.md | 1 +
libs/ui/src/lib/assistant/assistant.component.ts | 15 +++++++++------
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d871a1258..5ca71c164 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
+- Improved the usability of the date range selector in the assistant
- Refactored the holding detail dialog to a standalone component
- Refreshed the cryptocurrencies list
- Refactored various pages to standalone components
diff --git a/libs/ui/src/lib/assistant/assistant.component.ts b/libs/ui/src/lib/assistant/assistant.component.ts
index 101872a86..58d41a564 100644
--- a/libs/ui/src/lib/assistant/assistant.component.ts
+++ b/libs/ui/src/lib/assistant/assistant.component.ts
@@ -228,12 +228,7 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit {
{
label: '1 ' + $localize`year` + ' (' + $localize`1Y` + ')',
value: '1y'
- },
- {
- label: '5 ' + $localize`years` + ' (' + $localize`5Y` + ')',
- value: '5y'
- },
- { label: $localize`Max`, value: 'max' }
+ }
];
if (this.user?.settings?.isExperimentalFeatures) {
@@ -250,6 +245,14 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit {
);
}
+ this.dateRangeOptions = this.dateRangeOptions.concat([
+ {
+ label: '5 ' + $localize`years` + ' (' + $localize`5Y` + ')',
+ value: '5y'
+ },
+ { label: $localize`Max`, value: 'max' }
+ ]);
+
this.dateRangeFormControl.setValue(this.user?.settings?.dateRange ?? null);
this.filterForm.setValue(
From 6dabf7516a725bcfc3e862fb8971132d82ebfba8 Mon Sep 17 00:00:00 2001
From: Eduardo Marinho <87383586+SirZemar@users.noreply.github.com>
Date: Wed, 22 May 2024 17:15:08 +0100
Subject: [PATCH 07/92] Feature/preselect account in create or update activity
dialog (#3413)
* Preselect account if there is only one
* Update changelog
---
CHANGELOG.md | 1 +
.../create-or-update-activity-dialog.component.ts | 7 ++++++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5ca71c164..3a86dfb03 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
+- Improved the usability of the create or update activity dialog by preselecting the (only) account
- Improved the usability of the date range selector in the assistant
- Refactored the holding detail dialog to a standalone component
- Refreshed the cryptocurrencies list
diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
index f49860028..9d3bcc6c9 100644
--- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
+++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
@@ -91,7 +91,12 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
});
this.activityForm = this.formBuilder.group({
- accountId: [this.data.activity?.accountId, Validators.required],
+ accountId: [
+ this.data.accounts.length === 1 && !this.data.activity?.accountId
+ ? this.data.accounts[0].id
+ : this.data.activity?.accountId,
+ Validators.required
+ ],
assetClass: [this.data.activity?.SymbolProfile?.assetClass],
assetSubClass: [this.data.activity?.SymbolProfile?.assetSubClass],
comment: [this.data.activity?.comment],
From 766a2d7c2f42b0d30acb8508ba26a26f3c8d7dc5 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Wed, 22 May 2024 19:53:20 +0200
Subject: [PATCH 08/92] Release 2.82.0 (#3425)
---
CHANGELOG.md | 2 +-
package.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3a86dfb03..2f8192e93 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## Unreleased
+## 2.82.0 - 2024-05-22
### Changed
diff --git a/package.json b/package.json
index 3f3d25e3e..d13fdac2f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ghostfolio",
- "version": "2.81.0",
+ "version": "2.82.0",
"homepage": "https://ghostfol.io",
"license": "AGPL-3.0",
"repository": "https://github.com/ghostfolio/ghostfolio",
From b5bd4df4838169d8f9f3fe6408fb3cd771d65db7 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Thu, 23 May 2024 20:48:26 +0200
Subject: [PATCH 09/92] Feature/upgrade nx to version 19.0.5 (#3422)
* Upgrade Nx to version 19.0.5
* Update changelog
---
CHANGELOG.md | 6 +
package.json | 22 +--
yarn.lock | 505 +++++++++++++++++++++++++--------------------------
3 files changed, 269 insertions(+), 264 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2f8192e93..28348e558 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## Unreleased
+
+### Changed
+
+- Upgraded `Nx` from version `19.0.2` to `19.0.5`
+
## 2.82.0 - 2024-05-22
### Changed
diff --git a/package.json b/package.json
index d13fdac2f..599f70e34 100644
--- a/package.json
+++ b/package.json
@@ -150,16 +150,16 @@
"@angular/pwa": "17.3.5",
"@nestjs/schematics": "10.0.1",
"@nestjs/testing": "10.1.3",
- "@nx/angular": "19.0.2",
- "@nx/cypress": "19.0.2",
- "@nx/eslint-plugin": "19.0.2",
- "@nx/jest": "19.0.2",
- "@nx/js": "19.0.2",
- "@nx/nest": "19.0.2",
- "@nx/node": "19.0.2",
- "@nx/storybook": "19.0.2",
- "@nx/web": "19.0.2",
- "@nx/workspace": "19.0.2",
+ "@nx/angular": "19.0.5",
+ "@nx/cypress": "19.0.5",
+ "@nx/eslint-plugin": "19.0.5",
+ "@nx/jest": "19.0.5",
+ "@nx/js": "19.0.5",
+ "@nx/nest": "19.0.5",
+ "@nx/node": "19.0.5",
+ "@nx/storybook": "19.0.5",
+ "@nx/web": "19.0.5",
+ "@nx/workspace": "19.0.5",
"@schematics/angular": "17.3.3",
"@simplewebauthn/types": "9.0.1",
"@storybook/addon-essentials": "7.6.5",
@@ -188,7 +188,7 @@
"jest": "29.4.3",
"jest-environment-jsdom": "29.4.3",
"jest-preset-angular": "14.0.3",
- "nx": "19.0.2",
+ "nx": "19.0.5",
"prettier": "3.2.5",
"prettier-plugin-organize-attributes": "1.0.0",
"react": "18.2.0",
diff --git a/yarn.lock b/yarn.lock
index 7b1fefcbb..52610cec8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4977,98 +4977,98 @@
read-package-json-fast "^3.0.0"
which "^4.0.0"
-"@nrwl/angular@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/angular/-/angular-19.0.2.tgz#6264e03daa40f512e98aba56da7d6e79bc5f631f"
- integrity sha512-U7PiGq62bhSjmWnkDY6TXdSjpBPLF2HlYxNd5GtGZo3zC23o2kqPwaXYLFcgMHzG6clm435P3jRcgE5XEOqbhw==
+"@nrwl/angular@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/angular/-/angular-19.0.5.tgz#ff6abf0cbd0a3dd37248c471ad0b9684b94664a2"
+ integrity sha512-LnuOTj4ecNvUgJqx4k0yyjZ2Y/+aLwpc9w6wcscAmsOF2IKstTrJGzyfs2gIYZgUt/IWI6NerBMLE5zR2pql0A==
dependencies:
- "@nx/angular" "19.0.2"
+ "@nx/angular" "19.0.5"
tslib "^2.3.0"
-"@nrwl/cypress@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/cypress/-/cypress-19.0.2.tgz#f88af85582f5e5fc4a03492fbf9b7eed44b617c9"
- integrity sha512-EaRn0IulCRr+yItA2huV6b+lz9Ff7Dcg+rgbuIbDBz88D2WMjsB2fm9gGgLx0zw8OKQdVxe3pQqaHAuGgordUg==
+"@nrwl/cypress@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/cypress/-/cypress-19.0.5.tgz#0ea3944a7f433a9cab5709c25bf03318fb18569b"
+ integrity sha512-tP3FFKxnYm+UT4Zx+zPsXZrEsrhI23gNorlWwEE6yFzGZMGQHcOODb9Hvr1AJp7Sud5P91FsKfQQTY7l6X+o6g==
dependencies:
- "@nx/cypress" "19.0.2"
+ "@nx/cypress" "19.0.5"
-"@nrwl/devkit@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-19.0.2.tgz#225d5579f1b52f0476bf3982f09a1d59f8d1e291"
- integrity sha512-h/hBltFnJLrDVxVJYcU/qAba9NGfrSp1q4t9U9tl8B8InMtRRgjFKX/whRZd6PE7ZTN7kqr0+XRTETFKv5heDA==
+"@nrwl/devkit@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-19.0.5.tgz#541fcefb71b17951007764d8d5c8f05ba71d4e36"
+ integrity sha512-An/QPhcGP5l0R4zxeQodFo3rgofx3KhU37VMnKTv1TY8MaByOxh3fusdTAY8EWhdcdsu296wfqxe25snsZqlsQ==
dependencies:
- "@nx/devkit" "19.0.2"
+ "@nx/devkit" "19.0.5"
-"@nrwl/eslint-plugin-nx@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-19.0.2.tgz#51f7cfa878a5963672ac12841e815fe233e2afbb"
- integrity sha512-T/01uFi6xAjbpU04kqiD+H4NNlZpuPiQbY8T3k/hn3/+2ePK1je09Z2ilsfWUcsH23p95yM4LMmFDTPlrRjwAw==
+"@nrwl/eslint-plugin-nx@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-19.0.5.tgz#5101991cf44e7787c418a39976701952210cd85d"
+ integrity sha512-X6XBovNC5ewA7U6k9bfoYGN91Bv/q5F7DfXbW8JlnieFh7VSOnmQg1IR7PuKJKjdT3rjUAY1tYA1tiJxXaoeNw==
dependencies:
- "@nx/eslint-plugin" "19.0.2"
+ "@nx/eslint-plugin" "19.0.5"
-"@nrwl/jest@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/jest/-/jest-19.0.2.tgz#d9e9ac42691712cebae122e28d0066775e229dbe"
- integrity sha512-z+TQMN57wOK0rocSrhUpYFntYV5rIlSWBcYL/TRjHZAC/2zFR3kmQbgc3bRqEtmmm2pGkpZBLg+abJD/ge+Nxw==
+"@nrwl/jest@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/jest/-/jest-19.0.5.tgz#bb829174eef30b91d673ad8ba062a913beb8c6c2"
+ integrity sha512-0JEXjBOltc7R2rZ2WRvipcPqRH25CspsNu7r7H0UE/UykOB+iDrnhUsLDexWrWbTJ4qTKl1S//4M5SV7ftvAIQ==
dependencies:
- "@nx/jest" "19.0.2"
+ "@nx/jest" "19.0.5"
-"@nrwl/js@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-19.0.2.tgz#af2768630c9098adb95fe4f2729a03ce9cdd085c"
- integrity sha512-6bWHnC3rhRFmuUGt7G/0NGTAxm2ig9MpXzCzERYEACcS3fEN4QDMLbUlyojjiRWbQWeCPz9adxWTgkckM4Ispg==
+"@nrwl/js@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-19.0.5.tgz#1c7face01a4f5229f08db836914141c1598a2f7d"
+ integrity sha512-6alp+QH4ZKiwXvVvRxZpXhSu/7o2PnHN2UkROQT/ODrdeJl2aTHIm7yMRrGo9x76AmJSckoYbSBRoAG9SY46Zg==
dependencies:
- "@nx/js" "19.0.2"
+ "@nx/js" "19.0.5"
-"@nrwl/nest@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/nest/-/nest-19.0.2.tgz#02f5166c15a9795fd3b0817c60690bf169d37187"
- integrity sha512-0U6DK8lkRhTCsdR8M8Iw4cLoK2q5Kbs6aAhTi7voXVZDvhpNf3BQACbgVqjmSlkxLbhaScFzc0GkXLuDdGBIXQ==
+"@nrwl/nest@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/nest/-/nest-19.0.5.tgz#a4371100f81081910b4177437dadf19f329f7605"
+ integrity sha512-XXMdvfYeUL7ibRRp9X0nnVjbzGZRd7paHF0XOeLaYf2AFUk8jzZeNls83t1HYidCe6DNaZoy2/P2iOvc2ulQnA==
dependencies:
- "@nx/nest" "19.0.2"
+ "@nx/nest" "19.0.5"
-"@nrwl/node@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/node/-/node-19.0.2.tgz#b606ca9abf231a938d00110c52a6a6dc03a2992f"
- integrity sha512-uVXq86Xi+l4pPh/zquMgXVUHeIeH9GNiQj8wM7WodA4sMnJENQ+9GRENHE5H8NjpbilqutgEDF0WqTDaa3zQ/Q==
+"@nrwl/node@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/node/-/node-19.0.5.tgz#e6f9203ed3e70652c1bc85f6ee0f446b0a4a1dd8"
+ integrity sha512-tnEfwM6sjQdguO60igkKkoN/nGZ+hEyPC5JHjNkhHgH4FA44AUEUh0A8+JTgZ2/mKpfpGXfDwxXEqGERyZzH8g==
dependencies:
- "@nx/node" "19.0.2"
+ "@nx/node" "19.0.5"
-"@nrwl/storybook@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/storybook/-/storybook-19.0.2.tgz#d00e9c9191bafd326eadc77dab873e1e5b768f80"
- integrity sha512-745jQwv4sI4BywIr9ABlmbrmtWHf2O/jtWl3HYaNuZoDbsvIq+aZAzAVFPZdmRYnhs/vgyOqYqiVbpQwx+uqVw==
+"@nrwl/storybook@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/storybook/-/storybook-19.0.5.tgz#0142e5af693bd28f7daeb919a90e456f526e83e3"
+ integrity sha512-oQYaDmuM+6f80hcyLPCIbpqGFdDXUfW08A9DnvtH5Zxx+zvxA/673odqfni44L1/lGgn3uFTFLnbbrIyST1+BQ==
dependencies:
- "@nx/storybook" "19.0.2"
+ "@nx/storybook" "19.0.5"
-"@nrwl/tao@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-19.0.2.tgz#b92ab17b991300f87948b0151ab06fe089b11a72"
- integrity sha512-VLU0Ptqq9+R5Ugb4d7ANb/pzZ8Rh+ExNcyg5MVNNrrgrM8ghLOu2/qPoatWyXLZg+cfKr6bH7/c0rWBtPcc69Q==
+"@nrwl/tao@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-19.0.5.tgz#275e0c61bb6ffa66117b1a4ace4fef45a684b015"
+ integrity sha512-2h/su5aFeAZrCEGlGDvxmZAUuu4RdFbfZ+HB0G4figFwqKMckX0yFhJXruIbOQdwCWyP542JOxlK+rubodLeXw==
dependencies:
- nx "19.0.2"
+ nx "19.0.5"
tslib "^2.3.0"
-"@nrwl/web@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/web/-/web-19.0.2.tgz#bcb30cd4c8f6bb32e9bc970e0f7d5e34927c815c"
- integrity sha512-/w0ZhhFZvCJv0CgySaIGDhglLiDvvwbF7gM1k4qPPPYZFPPSShmb5BANlDyaBnX6wYRFY42kaXfGE51Dc6qZ5A==
+"@nrwl/web@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/web/-/web-19.0.5.tgz#d0314e73fb1a74ca0ae8fd3657aa88fe1f5e2975"
+ integrity sha512-Ruc8gabTHQRZNfaP17YI5waO9AJQdzfPUEITMVRKp5ktkGqRySGJsnVCJExCQLCt+++0vXkkn9Gge3CU5O2sZg==
dependencies:
- "@nx/web" "19.0.2"
+ "@nx/web" "19.0.5"
-"@nrwl/webpack@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/webpack/-/webpack-19.0.2.tgz#66e1a0652fc101fbbb8b2b87c73dda5b24174917"
- integrity sha512-VpqZxrT8sglXpB9TKUrXS/Cht3j4ZOg53yL/CEse+oeVTUi2BFWFPhhdtFAzDtz27F1nnrcXSTluCcKpisDG/A==
+"@nrwl/webpack@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/webpack/-/webpack-19.0.5.tgz#3944c89dc485b5d2a8cb06d4b1eb2af98d8e1493"
+ integrity sha512-AJ9n/ulBrPNDKlLHoEF60Yk/bnVzGGN4MVYImgRbFRuo7/hueuQA6SeW4wm9HtGfMfTScNQJHbKqU43ZI0/vHg==
dependencies:
- "@nx/webpack" "19.0.2"
+ "@nx/webpack" "19.0.5"
-"@nrwl/workspace@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-19.0.2.tgz#7c05d0d898ca8024f78a8c1089bdc0d20999072e"
- integrity sha512-DtMbNhTpkcsDRn+pBiqFGUpZkBTzhbwQKRacwD2n+NqBFhCSCMoKYxsRnd5A874hiF3fyGB8AYEmuuTOxhATgg==
+"@nrwl/workspace@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-19.0.5.tgz#dc9b7e361697e44d541151e0cf1afa8d93b3f4da"
+ integrity sha512-8QHV4ixmO3KEUwXJX2evO++QPKbVX6BikdF8WqViHtw725Z40u2MH8i+fsySR2/p3nsSg+Z4404pt6/s40pG9Q==
dependencies:
- "@nx/workspace" "19.0.2"
+ "@nx/workspace" "19.0.5"
"@nuxtjs/opencollective@0.3.2":
version "0.3.2"
@@ -5079,18 +5079,18 @@
consola "^2.15.0"
node-fetch "^2.6.1"
-"@nx/angular@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/angular/-/angular-19.0.2.tgz#3fe5757f6d6e173766869527ba50a34f98db873b"
- integrity sha512-pwVrE6zevR7ohHlLIcVOgU9Mz+IPEiTBpSkwolnVjvUWlLp4fHC7HdHxos47/VjOaS4IpDg5LTnGanKhHhMg0w==
- dependencies:
- "@nrwl/angular" "19.0.2"
- "@nx/devkit" "19.0.2"
- "@nx/eslint" "19.0.2"
- "@nx/js" "19.0.2"
- "@nx/web" "19.0.2"
- "@nx/webpack" "19.0.2"
- "@nx/workspace" "19.0.2"
+"@nx/angular@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/angular/-/angular-19.0.5.tgz#a7b48b8e2fcacd228d432f1149c89974667bb071"
+ integrity sha512-znJXDih50CNIm7bejQVyK4gB+V9IwgnjUBCllkDsXkDrSAtNmtcvtin9xqImZ7wfXHFNPmy2GqLK+Sp6mqAmEg==
+ dependencies:
+ "@nrwl/angular" "19.0.5"
+ "@nx/devkit" "19.0.5"
+ "@nx/eslint" "19.0.5"
+ "@nx/js" "19.0.5"
+ "@nx/web" "19.0.5"
+ "@nx/webpack" "19.0.5"
+ "@nx/workspace" "19.0.5"
"@phenomnomnominal/tsquery" "~5.0.1"
"@typescript-eslint/type-utils" "^7.3.0"
chalk "^4.1.0"
@@ -5104,25 +5104,25 @@
webpack "^5.80.0"
webpack-merge "^5.8.0"
-"@nx/cypress@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/cypress/-/cypress-19.0.2.tgz#90bf24bbbf39074ffc4964e5f4eebc2d3c86a068"
- integrity sha512-YNnG1QB2zINiDb4Jc3bjIARxA2yG+/B3nzePwoI4fYzuLqEYAN6DmiYEj+5k9KsS+des3xnGFPSBHBTUPLh/AA==
+"@nx/cypress@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/cypress/-/cypress-19.0.5.tgz#fe0c6ff75bbe242b3a3d28435b188e259f7b0dc0"
+ integrity sha512-6vpGzeC2r4ELctEO+gqJ++4d3k3+bC42zURBZwCVRn47ors26U8N/FjkpfLGidOzn6rJNTETDNBJoxdJQ7xkIw==
dependencies:
- "@nrwl/cypress" "19.0.2"
- "@nx/devkit" "19.0.2"
- "@nx/eslint" "19.0.2"
- "@nx/js" "19.0.2"
+ "@nrwl/cypress" "19.0.5"
+ "@nx/devkit" "19.0.5"
+ "@nx/eslint" "19.0.5"
+ "@nx/js" "19.0.5"
"@phenomnomnominal/tsquery" "~5.0.1"
detect-port "^1.5.1"
tslib "^2.3.0"
-"@nx/devkit@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-19.0.2.tgz#177a7e236ae5c498cd72b33e766a7d32e2f52906"
- integrity sha512-qHBWQ3ZJ4vO8AVdSlz/u/GXDrDxVsBjC1/pY1ImycnUP4NfOtmBlYdhd5aB9XvWcujSmOap0ZJGr1iapYKoWxQ==
+"@nx/devkit@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-19.0.5.tgz#5b2e2f7997a019029007e7e5d5f8f04b4911e786"
+ integrity sha512-M/L0ZPxCfU7/WAy8UZEC5x3vyjAq9lGz6JwQ/5NfwbZsVCaeNgKpdavNJLtJG/SvQ6Ysz0t4u/ngLPfKP4N0CA==
dependencies:
- "@nrwl/devkit" "19.0.2"
+ "@nrwl/devkit" "19.0.5"
ejs "^3.1.7"
enquirer "~2.3.6"
ignore "^5.0.4"
@@ -5132,14 +5132,14 @@
tslib "^2.3.0"
yargs-parser "21.1.1"
-"@nx/eslint-plugin@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/eslint-plugin/-/eslint-plugin-19.0.2.tgz#2af83c556842a27c03639dcab567c52e80f32604"
- integrity sha512-MVriamwIXTdBgcP66IawjMa+A4hr4DKBRtvLtpv8MWYMXafBvqRXryAOAw490Q31YB1B9xs3n19OCDaTIbSHvQ==
+"@nx/eslint-plugin@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/eslint-plugin/-/eslint-plugin-19.0.5.tgz#6b8e2a215840f369483c7a1f629bbd0346fa20ee"
+ integrity sha512-v/Bx2kPpkDvLksPGjAMXDV6aYrFEKiv7bYGluAQdMd8I+rnTSG/ti6pM/ZqJ49Eg5Ub7KRtTg+moK0f4Wvd9Kw==
dependencies:
- "@nrwl/eslint-plugin-nx" "19.0.2"
- "@nx/devkit" "19.0.2"
- "@nx/js" "19.0.2"
+ "@nrwl/eslint-plugin-nx" "19.0.5"
+ "@nx/devkit" "19.0.5"
+ "@nx/js" "19.0.5"
"@typescript-eslint/type-utils" "^7.3.0"
"@typescript-eslint/utils" "^7.3.0"
chalk "^4.1.0"
@@ -5148,28 +5148,28 @@
semver "^7.5.3"
tslib "^2.3.0"
-"@nx/eslint@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/eslint/-/eslint-19.0.2.tgz#b15b33e849834ed1ce40ea7932f1e817b6f7bd39"
- integrity sha512-3kOB6Zna0qp8R2sl7Fy6KxPXlKatbkCEN0aPm4hke5euM6JcsRCz1w9dUFDoQ6e29S43htrv4bMc3A+i89ym7Q==
+"@nx/eslint@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/eslint/-/eslint-19.0.5.tgz#9e82bda765e106a7bce516a0f91e7dc5420cd3a6"
+ integrity sha512-STYXTklwBukZl9WS4iYoNw6DPkpbqz3JWVTQuUKLFT/4eLRVjjduRaJEW9NaV2vjMeq056soJrhc3ppSDIbN6g==
dependencies:
- "@nx/devkit" "19.0.2"
- "@nx/js" "19.0.2"
- "@nx/linter" "19.0.2"
+ "@nx/devkit" "19.0.5"
+ "@nx/js" "19.0.5"
+ "@nx/linter" "19.0.5"
eslint "^8.0.0"
tslib "^2.3.0"
typescript "~5.4.2"
-"@nx/jest@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/jest/-/jest-19.0.2.tgz#9713467bde869d701479d711727c518406db3f5c"
- integrity sha512-oV3QBdm/chaAcj+lzrwL937QIGZNXO18puFvol0hJrmVWMNRQr8LADfVHr8+qBrThxfj+w5UhXoDcqPS38zXXg==
+"@nx/jest@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/jest/-/jest-19.0.5.tgz#3ff20be5b3851accdbccb3038fcc0e9277b0edde"
+ integrity sha512-AUp2Cfj+ll9uDB3VOVqrXxf4Xb5HiuB4hvK46upa8RqAUiQ+aS7dYC6bVVjOEsDw/Yz9HOyC5RN0qmYrNy0cqA==
dependencies:
"@jest/reporters" "^29.4.1"
"@jest/test-result" "^29.4.1"
- "@nrwl/jest" "19.0.2"
- "@nx/devkit" "19.0.2"
- "@nx/js" "19.0.2"
+ "@nrwl/jest" "19.0.5"
+ "@nx/devkit" "19.0.5"
+ "@nx/js" "19.0.5"
"@phenomnomnominal/tsquery" "~5.0.1"
chalk "^4.1.0"
identity-obj-proxy "3.0.0"
@@ -5181,10 +5181,10 @@
tslib "^2.3.0"
yargs-parser "21.1.1"
-"@nx/js@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/js/-/js-19.0.2.tgz#c9aa549156401e97f08c55121b1e43696d53056d"
- integrity sha512-pAA9/mFGnBwpF/x+80dSWHZIxY0M1YtgcabQYdQmZ8zwdYOtSkJwuibFvPRkUxqVg0F4E0nTuJ4R1uruSe9P8Q==
+"@nx/js@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/js/-/js-19.0.5.tgz#4b543287ccef5abff7b4d692f7288df21ab28887"
+ integrity sha512-lDu4P+satlNl6K7OoF+C5rMVMwknJ696nfTN72cBihxKnZYkGYMWFqIazPG9EYVAwCifGjU4OKX4X8G0hyE7vA==
dependencies:
"@babel/core" "^7.23.2"
"@babel/plugin-proposal-decorators" "^7.22.7"
@@ -5193,9 +5193,9 @@
"@babel/preset-env" "^7.23.2"
"@babel/preset-typescript" "^7.22.5"
"@babel/runtime" "^7.22.6"
- "@nrwl/js" "19.0.2"
- "@nx/devkit" "19.0.2"
- "@nx/workspace" "19.0.2"
+ "@nrwl/js" "19.0.5"
+ "@nx/devkit" "19.0.5"
+ "@nx/workspace" "19.0.5"
babel-plugin-const-enum "^1.0.1"
babel-plugin-macros "^2.8.0"
babel-plugin-transform-typescript-metadata "^0.3.1"
@@ -5216,125 +5216,125 @@
tsconfig-paths "^4.1.2"
tslib "^2.3.0"
-"@nx/linter@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/linter/-/linter-19.0.2.tgz#a4fb9ab564c8399ff93ba0c295a6e03a870e2b06"
- integrity sha512-t9ccK+IVV/pNBbST2cOstuiMaBeC4o31U4yYPYMqrSx6uEkNoIe+YTJoaxLENaxqpvb+oek65Rg6/FlIbkrYVA==
+"@nx/linter@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/linter/-/linter-19.0.5.tgz#d00c8572fad4318651f3e964e99305545f87088c"
+ integrity sha512-cHErD2BBCjLLWul33xFKUQJFMXwbMOZeqBGgfWptQthFiscZrNcJWbE9NyD5Nm0pkCCjsN9FIdAtAaYVQC8iKA==
dependencies:
- "@nx/eslint" "19.0.2"
+ "@nx/eslint" "19.0.5"
-"@nx/nest@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/nest/-/nest-19.0.2.tgz#6cb9a093360d91a9ce8827a9d62d15b2a03af179"
- integrity sha512-vJz435gdJgPaGwpllD44fJ43/Pb1ZK9cQFPVi2A+hiPcw+9ML3diLiAWH/mrigxHBbRbCY6bpaTrq3t8TBte1w==
+"@nx/nest@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/nest/-/nest-19.0.5.tgz#efe3167a83eb62deaa3e041292f149066a799f23"
+ integrity sha512-Hvmsvrv7mslFswIfJsuGcJSswkHg9Ne8B8RvdG6WWIVzh/v0c+X+j1VpFfLHf37z+r6gEXCb1k0rqZWPYx4/kQ==
dependencies:
"@nestjs/schematics" "^9.1.0"
- "@nrwl/nest" "19.0.2"
- "@nx/devkit" "19.0.2"
- "@nx/eslint" "19.0.2"
- "@nx/js" "19.0.2"
- "@nx/node" "19.0.2"
+ "@nrwl/nest" "19.0.5"
+ "@nx/devkit" "19.0.5"
+ "@nx/eslint" "19.0.5"
+ "@nx/js" "19.0.5"
+ "@nx/node" "19.0.5"
"@phenomnomnominal/tsquery" "~5.0.1"
tslib "^2.3.0"
-"@nx/node@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/node/-/node-19.0.2.tgz#03b4ff289f21d2a2015a67a491c15f8d9fd1cfad"
- integrity sha512-IrbMPAi3keh0t2zp8RBDjAswjOj6b8XqKkLFQCxisU7/tg1DKXrMUNwZN1F05SdbV/EFvQSUeycnPC7eWWxcBA==
+"@nx/node@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/node/-/node-19.0.5.tgz#36b67a62d26c83c651b0f4cf4693f90b3ce54ff7"
+ integrity sha512-uHOdNeb4EisAwGknlvlssna+9egh4GQS7yM85Oo3l+jWm8RtudswOu+Y0TeDk1DaCzZAfmMvtY59Y1bN5ppWPw==
dependencies:
- "@nrwl/node" "19.0.2"
- "@nx/devkit" "19.0.2"
- "@nx/eslint" "19.0.2"
- "@nx/jest" "19.0.2"
- "@nx/js" "19.0.2"
+ "@nrwl/node" "19.0.5"
+ "@nx/devkit" "19.0.5"
+ "@nx/eslint" "19.0.5"
+ "@nx/jest" "19.0.5"
+ "@nx/js" "19.0.5"
tslib "^2.3.0"
-"@nx/nx-darwin-arm64@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.0.2.tgz#096c7c80624bf7af64e17f696059cfb6c67b2c2b"
- integrity sha512-JVOz6kNaypyK7Bi/l//BZ6F8i70UXlnQBdnacBM8nZH2oAQ7OIj1foZEw7ANnDvKpUJB2staJ9ZwPc/KzXwr5A==
-
-"@nx/nx-darwin-x64@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-19.0.2.tgz#64cba91c4afbf06c7a4bea6a8d11d1a57edb00f7"
- integrity sha512-qfj3AJ/RCbEps+Evbycrf1qUQk/zkwX5NT80dgK/r9eGBbo3qOA3VLa1z0PtaaJaYhZxZkjhwXOqhqAjDNN8bw==
-
-"@nx/nx-freebsd-x64@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.0.2.tgz#71454fbcb0f4e7cf8e2559555c38714a1b091003"
- integrity sha512-Fe+SQ4ug2RbKQ6saLhntsaOhf0aeoLQ/nJCc6h0TYPIs43go5gFSLFa2xnCOIo90dSL6/0z1r8VsZGSQQHiXMg==
-
-"@nx/nx-linux-arm-gnueabihf@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.0.2.tgz#3a389953bf7fc547bc1ac45a42519c7af6bca7fa"
- integrity sha512-0IW/gYZo5toGjjrqKL4SqV2twfkVDfMpx6M4BxwJlYEzzl+gtF0VrWfhVU3r4p2YZV8yW3cmH9SNChB6YZgQmA==
-
-"@nx/nx-linux-arm64-gnu@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.0.2.tgz#9c018d3423dbc7ab003ada2400c9a037f58aaec4"
- integrity sha512-+u5Y7XYf0M/KOnDz+iS6DnaGfwvEFsMJipzv337Mbc2qP2sxBR4pM8hEKcQeqII71as0Xo0sZzmyxXjJvG7bzw==
-
-"@nx/nx-linux-arm64-musl@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.0.2.tgz#9fcb897b2217baf942f31aaf827fc178920f2244"
- integrity sha512-hmQ6evq9S5a/svQOwpRF5Zcu114A9jpeDKEBysFmbdV1eTFkrxlnvSCs/xXOeYOe/QS8Ijl50d7+1zkOE2HVMA==
-
-"@nx/nx-linux-x64-gnu@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.0.2.tgz#1e5940d564d2be516fd4c587061b3a899773ffef"
- integrity sha512-zVcAotU7qlunsvg7I3oGp50f6ha44FeU6ITA+CHD0A/wqD11ZpVP0qsqMLawCGiKhNafQmUvkXMEFJ1dUX5aWw==
-
-"@nx/nx-linux-x64-musl@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.0.2.tgz#7030782c80aad725ff381c47f8184b85050f37bd"
- integrity sha512-72hT2V9IQNMIrC7sBzllrHEnoJOhuPxKXJTUYzz4v/Y11t1ziTHflGXO9nJOpydh8vA+91dPVrDM5mWr6IEPzg==
-
-"@nx/nx-win32-arm64-msvc@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.0.2.tgz#089503a0cc91d9b8fb3b5e2ff64a880419e98503"
- integrity sha512-aTxQBtUrusAm535DRnHxgM9AXnPYkhzr+eUSjrPUPTu2N3cuckq6JWfpxtjVCMcPfOR+pOC9luG3+bWmO32TQQ==
-
-"@nx/nx-win32-x64-msvc@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.0.2.tgz#3eb5c01e4ff7287ebff047dcc01ed6b54e975a5d"
- integrity sha512-lgxgj+ilhL9StCLzRxU+EB1n944bMjwbU3CxvYW2TYa+380UXVMUACjbLyzONQPeJPIm9azaVQNKnf5+c+nnBQ==
-
-"@nx/storybook@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/storybook/-/storybook-19.0.2.tgz#8acce07aa73f9e892cf6d678f88ab1785301d285"
- integrity sha512-8HBynlwleDpcxYo7oG9DtHseEegidLAcRWaWks7gSn0qdyD43PcR1ppfYdFyg5fvLN38UZm5RYBK60I9WYZUyg==
- dependencies:
- "@nrwl/storybook" "19.0.2"
- "@nx/cypress" "19.0.2"
- "@nx/devkit" "19.0.2"
- "@nx/eslint" "19.0.2"
- "@nx/js" "19.0.2"
+"@nx/nx-darwin-arm64@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.0.5.tgz#676743b2b9b679ba736775916ab875f5cfc29527"
+ integrity sha512-UVI/PArJXGi482wTR1wlGCnploTx0WyjPMMCUEcV7dGtITHcx+g2vgsn+ymcJMYvFXMlqz/Ht0y+nK2DceRNFg==
+
+"@nx/nx-darwin-x64@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-19.0.5.tgz#42943189c8913d3c10b23fd295020b8a811695ed"
+ integrity sha512-aotdZKCkviDT1bBcwVehr3lmsVUeqi1bNSsXf5ISpf/xul+bjpC0GHmvyT+uA7Qm60Z78t/C9UzlRolHX8R2qw==
+
+"@nx/nx-freebsd-x64@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.0.5.tgz#e80f2034a09e19e679306b09d53f3c3766bbd84e"
+ integrity sha512-hv/CU+/siZpb7jAUcTQPbNqnyUtczmMzL0RrpFbyzBtArxNJRekLqFUf2vuOhMBycp1Nd7eAIFZVG45nupUGOQ==
+
+"@nx/nx-linux-arm-gnueabihf@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.0.5.tgz#48e861df43e67f7abb378310e05cde6881f096ce"
+ integrity sha512-Epa4Ubg7TsPxaVXthffKDbfwHnxmEY7FAfHSB+vv09JJ+BR8XItNNl2Tqi/lsgFSHxBVDBU8bmdZZFRx9RAWYQ==
+
+"@nx/nx-linux-arm64-gnu@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.0.5.tgz#58a50eb6c45c45a454690bb6c430d60047269659"
+ integrity sha512-tE+zouY5ZnJubVXeREVngrniQqv3HRd4uJFhJKW53yQIMRXFHa1BK+HEg9DmexG7qLMN7TUx4ZKCe8ojiyY5QA==
+
+"@nx/nx-linux-arm64-musl@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.0.5.tgz#4f734f97ae17ace18c36e7cb1ee285411384023a"
+ integrity sha512-wZFSElrds1bBb+V+KbHiXCQxhs9yZ3cI2UVras6ATJkuLm+iU/5ifY3FssA2nZVUHZKfc7gENyD0/eFoGKk+4w==
+
+"@nx/nx-linux-x64-gnu@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.0.5.tgz#67db3209ee0bf6a3d6beaf06953e94012fd29341"
+ integrity sha512-zEPiZJ1yEdjcgsxi3VdzNgj0pRtxU3pxUPYmlPLaqsW9UcD8AiMZF6xZA1+KZK7VBoZmsrOdmchcmgSW0yK+Fg==
+
+"@nx/nx-linux-x64-musl@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.0.5.tgz#777fabd38850ebc8a55da9234c678805e1329359"
+ integrity sha512-WjPDLDHvpwJq7BH+p5X0VO+SrEBSGmMUhsEJ4A39dBH/Md3daW+s6ZPk+frCDiDEGdTEsMJVphEn9Uoq+21nRQ==
+
+"@nx/nx-win32-arm64-msvc@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.0.5.tgz#77f88a1cfb625a0cfd0cc9472065b3876cef5f99"
+ integrity sha512-GHZLUVFsdP/cOUU45TTMql6u2WpUaM0kdaL5k+qHCr50bi6AEKmf9TL/fXfGMpZRvWyqRF4C9+0Z4cqhLxGn1Q==
+
+"@nx/nx-win32-x64-msvc@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.0.5.tgz#90ec93c1bbb596559abcd0e74a3bec2ee7ddd7f2"
+ integrity sha512-pppr1ermz+oAxS5YOuMU6FoqFPWXRqij3+kTkgrNnTqAJ33dkVk1x/tZnjisrFJWfKB+erBOQCe4XwwkuBuG3Q==
+
+"@nx/storybook@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/storybook/-/storybook-19.0.5.tgz#281e81705a322c4500eec0ebbcff698643c12238"
+ integrity sha512-pvUqQezVcvASKhcSakfWOxWly2zWgWoS/ec5PM7CLeAiKJfizxKClU58aGitK405hMRjJWGKTjb/Jfv7zECJRw==
+ dependencies:
+ "@nrwl/storybook" "19.0.5"
+ "@nx/cypress" "19.0.5"
+ "@nx/devkit" "19.0.5"
+ "@nx/eslint" "19.0.5"
+ "@nx/js" "19.0.5"
"@phenomnomnominal/tsquery" "~5.0.1"
semver "^7.5.3"
tslib "^2.3.0"
-"@nx/web@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/web/-/web-19.0.2.tgz#8dd3147077ac07c9608072b452420a2b98215ac4"
- integrity sha512-sK1avzp/FXtFO/viEtBj/UQTA0ScVfOGlwe92bAAFiX8YnxoazrPQnWiogXbF2AkQwFGyxR0Kp3iiu4Ezrp9Vg==
+"@nx/web@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/web/-/web-19.0.5.tgz#26af8e079d42cf6195131fe3822fa7ca92cd68df"
+ integrity sha512-AXKPm79h8DBO59I5R7HISREKh2nDqz7QMdd7yIdvKnSePUH4qMFOFXDwC1rSMfdZWSNLwnX17BFU5kbameD9sg==
dependencies:
- "@nrwl/web" "19.0.2"
- "@nx/devkit" "19.0.2"
- "@nx/js" "19.0.2"
+ "@nrwl/web" "19.0.5"
+ "@nx/devkit" "19.0.5"
+ "@nx/js" "19.0.5"
chalk "^4.1.0"
detect-port "^1.5.1"
http-server "^14.1.0"
tslib "^2.3.0"
-"@nx/webpack@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/webpack/-/webpack-19.0.2.tgz#0d0390791e7dc40b468c9a721dbfb6be435272ed"
- integrity sha512-P26koXvBrThOA0v5SNSbj+t66V8cETpHcR0JpylJ4ANwW36NdpDlMFdFW385IrpBvaWl42dMRqj9wf2h2zJO7w==
+"@nx/webpack@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/webpack/-/webpack-19.0.5.tgz#c2a0d17e1fee99f7fb94a00ab86ea79b79e784cb"
+ integrity sha512-t+UlSyg/m5/TyUvEndjvZWA8vx4ULoM1jxqqZKkoX6xk6zBYcoV1/nFpjluTI3BQ3jjwBPEErba2e0HFX5Kr3Q==
dependencies:
"@babel/core" "^7.23.2"
- "@nrwl/webpack" "19.0.2"
- "@nx/devkit" "19.0.2"
- "@nx/js" "19.0.2"
+ "@nrwl/webpack" "19.0.5"
+ "@nx/devkit" "19.0.5"
+ "@nx/js" "19.0.5"
ajv "^8.12.0"
autoprefixer "^10.4.9"
babel-loader "^9.1.2"
@@ -5369,16 +5369,16 @@
webpack-node-externals "^3.0.0"
webpack-subresource-integrity "^5.1.0"
-"@nx/workspace@19.0.2":
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-19.0.2.tgz#2dcae81d1791c690c57d5d58638585b94027ad0e"
- integrity sha512-4azpf0tDM7mN7kciMHH4e0bw2yEhVu4M6siYDLfq6ELY+rrP7eveh/drKiWaKrV9WVwwWzYdfpk98+1EtrBLAA==
+"@nx/workspace@19.0.5":
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-19.0.5.tgz#855ff4e02253ff5bd0370eda5c7c5f3219d5164a"
+ integrity sha512-U56H3k/TGlGH9xUFAACc+xunYg6duGCwnDtjPKH22AOEgGlJVDHvOD/4e7CSmh/Xzl2KpXt8aYJStjPWm6ykzg==
dependencies:
- "@nrwl/workspace" "19.0.2"
- "@nx/devkit" "19.0.2"
+ "@nrwl/workspace" "19.0.5"
+ "@nx/devkit" "19.0.5"
chalk "^4.1.0"
enquirer "~2.3.6"
- nx "19.0.2"
+ nx "19.0.5"
tslib "^2.3.0"
yargs-parser "21.1.1"
@@ -8095,13 +8095,6 @@
js-yaml "^3.10.0"
tslib "^2.4.0"
-"@zkochan/js-yaml@0.0.6":
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz#975f0b306e705e28b8068a07737fa46d3fc04826"
- integrity sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==
- dependencies:
- argparse "^2.0.1"
-
abab@^2.0.5, abab@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
@@ -13987,13 +13980,6 @@ js-sha256@0.9.0, js-sha256@^0.9.0:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-js-yaml@4.1.0, js-yaml@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
- integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
- dependencies:
- argparse "^2.0.1"
-
js-yaml@^3.10.0, js-yaml@^3.13.1:
version "3.14.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
@@ -14002,6 +13988,20 @@ js-yaml@^3.10.0, js-yaml@^3.13.1:
argparse "^1.0.7"
esprima "^4.0.0"
+js-yaml@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ dependencies:
+ argparse "^2.0.1"
+
+"js-yaml@npm:@zkochan/js-yaml@0.0.7":
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz#4b0cb785220d7c28ce0ec4d0804deb5d821eae89"
+ integrity sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==
+ dependencies:
+ argparse "^2.0.1"
+
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@@ -15661,15 +15661,14 @@ nwsapi@^2.2.2:
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
-nx@19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/nx/-/nx-19.0.2.tgz#6e5a592d2daf4752b4fa583abcef9c1f10ca9497"
- integrity sha512-59BSYa/Qp8nA764T7Cg7tSisFYBws9zSAMPm0YspCSPndoUy86Mjtg62bEqkHN0MWo6W4MxwOHuB0XSBvQ5DdA==
+nx@19.0.5:
+ version "19.0.5"
+ resolved "https://registry.yarnpkg.com/nx/-/nx-19.0.5.tgz#96f7bba72a3695d0a5634ddcfc598d4504dcded1"
+ integrity sha512-sZ/0eCoABfUF05gbw551jnkDWshXNlZleFNTgusQrlNTQC57opOBvXbNMYzFNGv6+9L1QsFiJJf8eP+CKWCgeg==
dependencies:
- "@nrwl/tao" "19.0.2"
+ "@nrwl/tao" "19.0.5"
"@yarnpkg/lockfile" "^1.1.0"
"@yarnpkg/parsers" "3.0.0-rc.46"
- "@zkochan/js-yaml" "0.0.6"
axios "^1.6.0"
chalk "^4.1.0"
cli-cursor "3.1.0"
@@ -15683,7 +15682,7 @@ nx@19.0.2:
fs-extra "^11.1.0"
ignore "^5.0.4"
jest-diff "^29.4.1"
- js-yaml "4.1.0"
+ js-yaml "npm:@zkochan/js-yaml@0.0.7"
jsonc-parser "3.2.0"
lines-and-columns "~2.0.3"
minimatch "9.0.3"
@@ -15701,16 +15700,16 @@ nx@19.0.2:
yargs "^17.6.2"
yargs-parser "21.1.1"
optionalDependencies:
- "@nx/nx-darwin-arm64" "19.0.2"
- "@nx/nx-darwin-x64" "19.0.2"
- "@nx/nx-freebsd-x64" "19.0.2"
- "@nx/nx-linux-arm-gnueabihf" "19.0.2"
- "@nx/nx-linux-arm64-gnu" "19.0.2"
- "@nx/nx-linux-arm64-musl" "19.0.2"
- "@nx/nx-linux-x64-gnu" "19.0.2"
- "@nx/nx-linux-x64-musl" "19.0.2"
- "@nx/nx-win32-arm64-msvc" "19.0.2"
- "@nx/nx-win32-x64-msvc" "19.0.2"
+ "@nx/nx-darwin-arm64" "19.0.5"
+ "@nx/nx-darwin-x64" "19.0.5"
+ "@nx/nx-freebsd-x64" "19.0.5"
+ "@nx/nx-linux-arm-gnueabihf" "19.0.5"
+ "@nx/nx-linux-arm64-gnu" "19.0.5"
+ "@nx/nx-linux-arm64-musl" "19.0.5"
+ "@nx/nx-linux-x64-gnu" "19.0.5"
+ "@nx/nx-linux-x64-musl" "19.0.5"
+ "@nx/nx-win32-arm64-msvc" "19.0.5"
+ "@nx/nx-win32-x64-msvc" "19.0.5"
oauth@0.9.x:
version "0.9.15"
From 6b9ec549da3d5641db03c2334a05349bc64f2ff4 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Fri, 24 May 2024 15:36:36 +0200
Subject: [PATCH 10/92] Feature/upgrade prisma to version 5.14.0 (#3423)
* Upgrade prisma to version 5.14.0
* Update changelog
---
CHANGELOG.md | 1 +
package.json | 4 +--
yarn.lock | 90 ++++++++++++++++++++++++++--------------------------
3 files changed, 48 insertions(+), 47 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 28348e558..43a9865b5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Upgraded `Nx` from version `19.0.2` to `19.0.5`
+- Upgraded `prisma` from version `5.13.0` to `5.14.0`
## 2.82.0 - 2024-05-22
diff --git a/package.json b/package.json
index 599f70e34..dbf39f003 100644
--- a/package.json
+++ b/package.json
@@ -84,7 +84,7 @@
"@nestjs/platform-express": "10.1.3",
"@nestjs/schedule": "3.0.2",
"@nestjs/serve-static": "4.0.0",
- "@prisma/client": "5.13.0",
+ "@prisma/client": "5.14.0",
"@simplewebauthn/browser": "9.0.1",
"@simplewebauthn/server": "9.0.3",
"@stripe/stripe-js": "1.47.0",
@@ -126,7 +126,7 @@
"passport": "0.6.0",
"passport-google-oauth20": "2.0.0",
"passport-jwt": "4.0.0",
- "prisma": "5.13.0",
+ "prisma": "5.14.0",
"reflect-metadata": "0.1.13",
"rxjs": "7.5.6",
"stripe": "11.12.0",
diff --git a/yarn.lock b/yarn.lock
index 52610cec8..3ef16fd42 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5448,46 +5448,46 @@
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817"
integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==
-"@prisma/client@5.13.0":
- version "5.13.0"
- resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.13.0.tgz#b9f1d0983d714e982675201d8222a9ecb4bdad4a"
- integrity sha512-uYdfpPncbZ/syJyiYBwGZS8Gt1PTNoErNYMuqHDa2r30rNSFtgTA/LXsSk55R7pdRTMi5pHkeP9B14K6nHmwkg==
-
-"@prisma/debug@5.13.0":
- version "5.13.0"
- resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.13.0.tgz#d88b0f6fafa0c216e20e284ed9fc30f1cbe45786"
- integrity sha512-699iqlEvzyCj9ETrXhs8o8wQc/eVW+FigSsHpiskSFydhjVuwTJEfj/nIYqTaWFYuxiWQRfm3r01meuW97SZaQ==
-
-"@prisma/engines-version@5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b":
- version "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b"
- resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b.tgz#a72a4fb83ba1fd01ad45f795aa55168f60d34723"
- integrity sha512-AyUuhahTINGn8auyqYdmxsN+qn0mw3eg+uhkp8zwknXYIqoT3bChG4RqNY/nfDkPvzWAPBa9mrDyBeOnWSgO6A==
-
-"@prisma/engines@5.13.0":
- version "5.13.0"
- resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.13.0.tgz#8994ebf7b4e35aee7746a8465ec22738379bcab6"
- integrity sha512-hIFLm4H1boj6CBZx55P4xKby9jgDTeDG0Jj3iXtwaaHmlD5JmiDkZhh8+DYWkTGchu+rRF36AVROLnk0oaqhHw==
- dependencies:
- "@prisma/debug" "5.13.0"
- "@prisma/engines-version" "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b"
- "@prisma/fetch-engine" "5.13.0"
- "@prisma/get-platform" "5.13.0"
-
-"@prisma/fetch-engine@5.13.0":
- version "5.13.0"
- resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.13.0.tgz#9b6945c7b38bb59e840f8905b20ea7a3d059ca55"
- integrity sha512-Yh4W+t6YKyqgcSEB3odBXt7QyVSm0OQlBSldQF2SNXtmOgMX8D7PF/fvH6E6qBCpjB/yeJLy/FfwfFijoHI6sA==
- dependencies:
- "@prisma/debug" "5.13.0"
- "@prisma/engines-version" "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b"
- "@prisma/get-platform" "5.13.0"
-
-"@prisma/get-platform@5.13.0":
- version "5.13.0"
- resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.13.0.tgz#99ef909a52b9d79b64d72d2d3d8210c4892b6572"
- integrity sha512-B/WrQwYTzwr7qCLifQzYOmQhZcFmIFhR81xC45gweInSUn2hTEbfKUPd2keAog+y5WI5xLAFNJ3wkXplvSVkSw==
- dependencies:
- "@prisma/debug" "5.13.0"
+"@prisma/client@5.14.0":
+ version "5.14.0"
+ resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.14.0.tgz#dadca5bb1137ddcebb454bbdaf89423823d3363f"
+ integrity sha512-akMSuyvLKeoU4LeyBAUdThP/uhVP3GuLygFE3MlYzaCb3/J8SfsYBE5PkaFuLuVpLyA6sFoW+16z/aPhNAESqg==
+
+"@prisma/debug@5.14.0":
+ version "5.14.0"
+ resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.14.0.tgz#1227c705893c38284f7c63d72441480ebaa12605"
+ integrity sha512-iq56qBZuFfX3fCxoxT8gBX33lQzomBU0qIUaEj1RebsKVz1ob/BVH1XSBwwwvRVtZEV1b7Fxx2eVu34Ge/mg3w==
+
+"@prisma/engines-version@5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48":
+ version "5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48"
+ resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48.tgz#019c3c75a5c3276e580685fe48cdbfd181176858"
+ integrity sha512-ip6pNkRo1UxWv+6toxNcYvItNYaqQjXdFNGJ+Nuk2eYtRoEdoF13wxo7/jsClJFFenMPVNVqXQDV0oveXnR1cA==
+
+"@prisma/engines@5.14.0":
+ version "5.14.0"
+ resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.14.0.tgz#2ee91dd2220a726c27c906fbea788bbb3efdac6e"
+ integrity sha512-lgxkKZ6IEygVcw6IZZUlPIfLQ9hjSYAtHjZ5r64sCLDgVzsPFCi2XBBJgzPMkOQ5RHzUD4E/dVdpn9+ez8tk1A==
+ dependencies:
+ "@prisma/debug" "5.14.0"
+ "@prisma/engines-version" "5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48"
+ "@prisma/fetch-engine" "5.14.0"
+ "@prisma/get-platform" "5.14.0"
+
+"@prisma/fetch-engine@5.14.0":
+ version "5.14.0"
+ resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.14.0.tgz#45297c118d4ec3fea55129886edd5a429da1f6da"
+ integrity sha512-VrheA9y9DMURK5vu8OJoOgQpxOhas3qF0IBHJ8G/0X44k82kc8E0w98HCn2nhnbOOMwbWsJWXfLC2/F8n5u0gQ==
+ dependencies:
+ "@prisma/debug" "5.14.0"
+ "@prisma/engines-version" "5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48"
+ "@prisma/get-platform" "5.14.0"
+
+"@prisma/get-platform@5.14.0":
+ version "5.14.0"
+ resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.14.0.tgz#69112d3dde61905f59a65ed818f153e153ca40f0"
+ integrity sha512-/yAyBvcEjRv41ynZrhdrPtHgk47xLRRq/o5eWGcUpBJ1YrUZTYB8EoPiopnP7iQrMATK8stXQdPOoVlrzuTQZw==
+ dependencies:
+ "@prisma/debug" "5.14.0"
"@radix-ui/number@1.0.1":
version "1.0.1"
@@ -16701,12 +16701,12 @@ pretty-hrtime@^1.0.3:
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==
-prisma@5.13.0:
- version "5.13.0"
- resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.13.0.tgz#1f06e20ccfb6038ad68869e6eacd3b346f9d0851"
- integrity sha512-kGtcJaElNRAdAGsCNykFSZ7dBKpL14Cbs+VaQ8cECxQlRPDjBlMHNFYeYt0SKovAVy2Y65JXQwB3A5+zIQwnTg==
+prisma@5.14.0:
+ version "5.14.0"
+ resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.14.0.tgz#ffc4696a43b044b636c3303b7aa98c13c2ade4dd"
+ integrity sha512-gCNZco7y5XtjrnQYeDJTiVZmT/ncqCr5RY1/Cf8X2wgLRmyh9ayPAGBNziI4qEE4S6SxCH5omQLVo9lmURaJ/Q==
dependencies:
- "@prisma/engines" "5.13.0"
+ "@prisma/engines" "5.14.0"
prismjs@^1.28.0:
version "1.29.0"
From dcd496ac509016069f9076eb0eb33b9809c00666 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sun, 26 May 2024 14:13:43 +0200
Subject: [PATCH 11/92] Feature/upgrade angular to version 17.3.10 (#3430)
* Upgrade angular to version 17.3.10
* Update changelog
---
CHANGELOG.md | 1 +
package.json | 44 +++---
yarn.lock | 371 +++++++++++++++++++++++++++------------------------
3 files changed, 216 insertions(+), 200 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 43a9865b5..2ce855788 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
+- Upgraded `angular` from version `17.3.5` to `17.3.10`
- Upgraded `Nx` from version `19.0.2` to `19.0.5`
- Upgraded `prisma` from version `5.13.0` to `5.14.0`
diff --git a/package.json b/package.json
index dbf39f003..7843fbd83 100644
--- a/package.json
+++ b/package.json
@@ -54,17 +54,17 @@
"workspace-generator": "nx workspace-generator"
},
"dependencies": {
- "@angular/animations": "17.3.5",
- "@angular/cdk": "17.3.5",
- "@angular/common": "17.3.5",
- "@angular/compiler": "17.3.5",
- "@angular/core": "17.3.5",
- "@angular/forms": "17.3.5",
- "@angular/material": "17.3.5",
- "@angular/platform-browser": "17.3.5",
- "@angular/platform-browser-dynamic": "17.3.5",
- "@angular/router": "17.3.5",
- "@angular/service-worker": "17.3.5",
+ "@angular/animations": "17.3.10",
+ "@angular/cdk": "17.3.10",
+ "@angular/common": "17.3.10",
+ "@angular/compiler": "17.3.10",
+ "@angular/core": "17.3.10",
+ "@angular/forms": "17.3.10",
+ "@angular/material": "17.3.10",
+ "@angular/platform-browser": "17.3.10",
+ "@angular/platform-browser-dynamic": "17.3.10",
+ "@angular/router": "17.3.10",
+ "@angular/service-worker": "17.3.10",
"@codewithdan/observable-store": "2.2.15",
"@dfinity/agent": "0.15.7",
"@dfinity/auth-client": "0.15.7",
@@ -137,17 +137,17 @@
"zone.js": "0.14.5"
},
"devDependencies": {
- "@angular-devkit/build-angular": "17.3.5",
- "@angular-devkit/core": "17.3.5",
- "@angular-devkit/schematics": "17.3.5",
- "@angular-eslint/eslint-plugin": "17.3.0",
- "@angular-eslint/eslint-plugin-template": "17.3.0",
- "@angular-eslint/template-parser": "17.3.0",
- "@angular/cli": "17.3.5",
- "@angular/compiler-cli": "17.3.5",
- "@angular/language-service": "17.3.5",
- "@angular/localize": "17.3.5",
- "@angular/pwa": "17.3.5",
+ "@angular-devkit/build-angular": "17.3.8",
+ "@angular-devkit/core": "17.3.8",
+ "@angular-devkit/schematics": "17.3.8",
+ "@angular-eslint/eslint-plugin": "17.5.1",
+ "@angular-eslint/eslint-plugin-template": "17.5.1",
+ "@angular-eslint/template-parser": "17.5.1",
+ "@angular/cli": "17.3.8",
+ "@angular/compiler-cli": "17.3.10",
+ "@angular/language-service": "17.3.10",
+ "@angular/localize": "17.3.10",
+ "@angular/pwa": "17.3.8",
"@nestjs/schematics": "10.0.1",
"@nestjs/testing": "10.1.3",
"@nx/angular": "19.0.5",
diff --git a/yarn.lock b/yarn.lock
index 3ef16fd42..922c97b5d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -28,12 +28,12 @@
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
-"@angular-devkit/architect@0.1703.5":
- version "0.1703.5"
- resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1703.5.tgz#2e6e534c99fd99d53034237d64de6317f24af52a"
- integrity sha512-j3+9QeXIafuRMtk7N5Cmm/IiMSS/TOaybzfCv/LK+DP3hjEd8f8Az7hPmevUuOArvWNzUvoUeu30GmR3wABydA==
+"@angular-devkit/architect@0.1703.8":
+ version "0.1703.8"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1703.8.tgz#2b4f26d9e32ac013931631876b4a7a6926657ad3"
+ integrity sha512-lKxwG4/QABXZvJpqeSIn/kAwnY6MM9HdHZUV+o5o3UiTi+vO8rZApG4CCaITH3Bxebm7Nam7Xbk8RuukC5rq6g==
dependencies:
- "@angular-devkit/core" "17.3.5"
+ "@angular-devkit/core" "17.3.8"
rxjs "7.8.1"
"@angular-devkit/architect@^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0":
@@ -44,15 +44,15 @@
"@angular-devkit/core" "17.0.0"
rxjs "7.8.1"
-"@angular-devkit/build-angular@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-17.3.5.tgz#a1b1fdfe906a0132191c0fee56c2a1dc0a1d5f8f"
- integrity sha512-Ju2MkMidJglJq/iWgM9CNbhK7A/2n0LNYPZx+ucb+aOFWvurCQrU4Mt/es6xCsxOEs5OPhjqdva8mxE5FHwzTQ==
+"@angular-devkit/build-angular@17.3.8":
+ version "17.3.8"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-17.3.8.tgz#a19f05909551f79b95711235b1141f83f96fd558"
+ integrity sha512-ixsdXggWaFRP7Jvxd0AMukImnePuGflT9Yy7NJ9/y0cL/k//S/3RnkQv5i411KzN+7D4RIbNkRGGTYeqH24zlg==
dependencies:
"@ampproject/remapping" "2.3.0"
- "@angular-devkit/architect" "0.1703.5"
- "@angular-devkit/build-webpack" "0.1703.5"
- "@angular-devkit/core" "17.3.5"
+ "@angular-devkit/architect" "0.1703.8"
+ "@angular-devkit/build-webpack" "0.1703.8"
+ "@angular-devkit/core" "17.3.8"
"@babel/core" "7.24.0"
"@babel/generator" "7.23.6"
"@babel/helper-annotate-as-pure" "7.22.5"
@@ -63,7 +63,7 @@
"@babel/preset-env" "7.24.0"
"@babel/runtime" "7.24.0"
"@discoveryjs/json-ext" "0.5.7"
- "@ngtools/webpack" "17.3.5"
+ "@ngtools/webpack" "17.3.8"
"@vitejs/plugin-basic-ssl" "1.1.0"
ansi-colors "4.1.3"
autoprefixer "10.4.18"
@@ -115,12 +115,12 @@
optionalDependencies:
esbuild "0.20.1"
-"@angular-devkit/build-webpack@0.1703.5":
- version "0.1703.5"
- resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1703.5.tgz#3f8912aacb5b0d986e1f86756a40e4d21b3d7855"
- integrity sha512-KcoKlWhDP6+2q3laQ6elXLt2QrVxWJFdCPUC9dIm0Tnc997Tal/UVhlDKaZgITYDgDvRFqG+tzNm2uFd8l7h+A==
+"@angular-devkit/build-webpack@0.1703.8":
+ version "0.1703.8"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1703.8.tgz#d157a5790d5045dd9c312936c3907bd3a184bbfc"
+ integrity sha512-9u6fl8VVOxcLOEMzrUeaybSvi9hSLSRucHnybneYrabsgreDo32tuy/4G8p6YAHQjpWEj9jvF9Um13ertdni5Q==
dependencies:
- "@angular-devkit/architect" "0.1703.5"
+ "@angular-devkit/architect" "0.1703.8"
rxjs "7.8.1"
"@angular-devkit/core@16.0.1":
@@ -169,10 +169,10 @@
rxjs "7.8.1"
source-map "0.7.4"
-"@angular-devkit/core@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-17.3.5.tgz#5af01de95b4945587aea1feaa1011f87485ffee5"
- integrity sha512-iqGv45HVI+yRROoTqQTY0QChYlRCZkFUfIjdfJLegjc6xq9sLtxDr03CWM45BKGG5lSxDOy+qu/pdRvtL3V2eg==
+"@angular-devkit/core@17.3.8":
+ version "17.3.8"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-17.3.8.tgz#8679cacf84cf79764f027811020e235ab32016d2"
+ integrity sha512-Q8q0voCGudbdCgJ7lXdnyaxKHbNQBARH68zPQV72WT8NWy+Gw/tys870i6L58NWbBaCJEUcIj/kb6KoakSRu+Q==
dependencies:
ajv "8.12.0"
ajv-formats "2.1.1"
@@ -225,83 +225,84 @@
ora "5.4.1"
rxjs "7.8.1"
-"@angular-devkit/schematics@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-17.3.5.tgz#5ea31a3e5d7dc5eb11f786b796d0536f0a9b05bd"
- integrity sha512-oh/mvpMKxGfk5v9QIB7LfGsDC/iVpmsIAvbb4+1ddCx86EJXdz3xWnVDbUehOd6n7HJXnQrNirWjWvWquM2GhQ==
+"@angular-devkit/schematics@17.3.8":
+ version "17.3.8"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-17.3.8.tgz#f853eb21682aadfb6667e090b5b509fc95ce8442"
+ integrity sha512-QRVEYpIfgkprNHc916JlPuNbLzOgrm9DZalHasnLUz4P6g7pR21olb8YCyM2OTJjombNhya9ZpckcADU5Qyvlg==
dependencies:
- "@angular-devkit/core" "17.3.5"
+ "@angular-devkit/core" "17.3.8"
jsonc-parser "3.2.1"
magic-string "0.30.8"
ora "5.4.1"
rxjs "7.8.1"
-"@angular-eslint/bundled-angular-compiler@17.3.0":
- version "17.3.0"
- resolved "https://registry.yarnpkg.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.3.0.tgz#08b8b1bebbb677a1f208b56516fc9177a289d212"
- integrity sha512-ejfNzRuBeHUV8m2fkgs+M809rj5STuCuQo4fdfc6ccQpzXDI6Ha7BKpTznWfg5g529q/wrkoGSGgFxU9Yc2/dQ==
+"@angular-eslint/bundled-angular-compiler@17.5.1":
+ version "17.5.1"
+ resolved "https://registry.yarnpkg.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.5.1.tgz#21017c29486bf2f0f83501fb034dd0ff0a2c173e"
+ integrity sha512-2gYFcWsGcw3BytCzt6DzKNayOHhW1dhMAgttor94lXLYOYN82eLGomC+aZF/U6fqVGBjm5JIEJpWbNF+NawZ7w==
-"@angular-eslint/eslint-plugin-template@17.3.0":
- version "17.3.0"
- resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.3.0.tgz#712a99503b4ef12e9f37979375539c3ace44375b"
- integrity sha512-9l/aRfpE9MCRVDWRb+rSB9Zei0paep1vqV6M/87VUnzBnzqeMRnVuPvQowilh2zweVSGKBF25Vp4HkwOL6ExDQ==
+"@angular-eslint/eslint-plugin-template@17.5.1":
+ version "17.5.1"
+ resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.5.1.tgz#72a07db87698aec0277b463bf3630b040f97af39"
+ integrity sha512-OgTN6ogZSA7Fi/9Zfk3EZumr06MZPXyI7Y9A09WzkjgUikCXDNoYwvkT4Bh0jOtwDDhtAAFC9/TehJQj7f4o5A==
dependencies:
- "@angular-eslint/bundled-angular-compiler" "17.3.0"
- "@angular-eslint/utils" "17.3.0"
- "@typescript-eslint/type-utils" "7.2.0"
- "@typescript-eslint/utils" "7.2.0"
+ "@angular-eslint/bundled-angular-compiler" "17.5.1"
+ "@angular-eslint/utils" "17.5.1"
+ "@typescript-eslint/type-utils" "7.10.0"
+ "@typescript-eslint/utils" "7.10.0"
aria-query "5.3.0"
axobject-query "4.0.0"
-"@angular-eslint/eslint-plugin@17.3.0":
- version "17.3.0"
- resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin/-/eslint-plugin-17.3.0.tgz#b5037877cdc64d407649247e5ca09851c8674b4e"
- integrity sha512-81cQbOEPoQupFX8WmpqZn+y8VA7JdVRGBtt+uJNKBXcJknTpPWdLBZRFlgVakmC24iEZ0Fint/N3NBBQI3mz2A==
+"@angular-eslint/eslint-plugin@17.5.1":
+ version "17.5.1"
+ resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin/-/eslint-plugin-17.5.1.tgz#e2814427d388bfcfa66dc950aeef74af5988be33"
+ integrity sha512-6/BLBJatp4DK9XtiVIh3UGIkZkikmtnV3tSvxtxG0LR1/zY+iWZIyQlmoJ42jRh3F0L46lmb14Z0iaIsPXuRGQ==
dependencies:
- "@angular-eslint/utils" "17.3.0"
- "@typescript-eslint/utils" "7.2.0"
+ "@angular-eslint/bundled-angular-compiler" "17.5.1"
+ "@angular-eslint/utils" "17.5.1"
+ "@typescript-eslint/utils" "7.10.0"
-"@angular-eslint/template-parser@17.3.0":
- version "17.3.0"
- resolved "https://registry.yarnpkg.com/@angular-eslint/template-parser/-/template-parser-17.3.0.tgz#580a703cbaa4967d36a953a00f5c347987c14171"
- integrity sha512-m+UzAnWgtjeS0x6skSmR0eXltD/p7HZA+c8pPyAkiHQzkxE7ohhfyZc03yWGuYJvWQUqQAKKdO/nQop14TP0bg==
+"@angular-eslint/template-parser@17.5.1":
+ version "17.5.1"
+ resolved "https://registry.yarnpkg.com/@angular-eslint/template-parser/-/template-parser-17.5.1.tgz#fcb888b569d547d44fec24ced8a269521e8096c0"
+ integrity sha512-DJcYacYEb17uUlQFYIKSjmlzWJEfev5pOMddDewV3h6oVm4T77X1SH/u8n5Oz1Zy13TrLWponwFORCKhg7nOfg==
dependencies:
- "@angular-eslint/bundled-angular-compiler" "17.3.0"
+ "@angular-eslint/bundled-angular-compiler" "17.5.1"
eslint-scope "^8.0.0"
-"@angular-eslint/utils@17.3.0":
- version "17.3.0"
- resolved "https://registry.yarnpkg.com/@angular-eslint/utils/-/utils-17.3.0.tgz#85915e864c7b7f33df1fdf15f74cc99fd5895e1e"
- integrity sha512-PJT9pxWqpvI9OXO+7L5SIVhvMW+RFjeafC7PYjtvSbNFpz+kF644BiAcfMJ0YqBnkrw3JXt+RAX25CT4mXIoXw==
+"@angular-eslint/utils@17.5.1":
+ version "17.5.1"
+ resolved "https://registry.yarnpkg.com/@angular-eslint/utils/-/utils-17.5.1.tgz#c6c02caa80879af8cffbdeaecd532a04a77c38d8"
+ integrity sha512-Rji1fC9OLDzRaeM2Aven0HdEnqaIgLn5cD6JQphTi1o4TzIXAcSrB9g52dVkH3RnqtOGYSIfFpA6+lQfn7wLOA==
dependencies:
- "@angular-eslint/bundled-angular-compiler" "17.3.0"
- "@typescript-eslint/utils" "7.2.0"
+ "@angular-eslint/bundled-angular-compiler" "17.5.1"
+ "@typescript-eslint/utils" "7.10.0"
-"@angular/animations@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-17.3.5.tgz#68f1f209137b3e7148143b66ab3a2b444ac9b546"
- integrity sha512-hbfCnBxwhYQMKB+9tDcmfvckUtB8LdY1gPST6TZ7CzrWCSPddsnXxqxBZSBjBI6zXvE4FOV3kUzaUXM/Bq5sRw==
+"@angular/animations@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-17.3.10.tgz#f62a728f078a586da27a36c931abb59fc7beb14e"
+ integrity sha512-9fR5snTuG4aM2K54TG/6DXcKXMDKZMovZhjQOxO8l68/oqn6fKrHs8DLzckFs0XGRZ+2OyURH8WggFm1Z828rA==
dependencies:
tslib "^2.3.0"
-"@angular/cdk@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-17.3.5.tgz#a610ec34fe7adb4ebd30798664a421ce204c653d"
- integrity sha512-6y8+yIPWG0wTdPwHIPxKrEFCX1JxxBh4aXcmQnrNTDIvtoEPGaea9SU9XKaU8ahiZMlcpUXqKLG0BVbEhA1Oow==
+"@angular/cdk@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-17.3.10.tgz#4a3bab529cd65bb19cb89c89b3548dcc534d1a44"
+ integrity sha512-b1qktT2c1TTTe5nTji/kFAVW92fULK0YhYAvJ+BjZTPKu2FniZNe8o4qqQ0pUuvtMu+ZQxp/QqFYoidIVCjScg==
dependencies:
tslib "^2.3.0"
optionalDependencies:
parse5 "^7.1.2"
-"@angular/cli@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-17.3.5.tgz#f668db09d283d669e42f166b7c9cfc0a8298b0a3"
- integrity sha512-6MHJzPKy4uB9qlJO1eKs4rtDlRuCe0lOiz1f3kHFZ/GQQm5xA1xsmZJMN4ASsnu4yU3oZs6vJ/vt8i2/jvdPbA==
+"@angular/cli@17.3.8":
+ version "17.3.8"
+ resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-17.3.8.tgz#3673fd5dd4fbc96a6ed57c4e871ac5a92d5702c7"
+ integrity sha512-X5ZOQ6ZTKVHjhIsfl32ZRqbs+FUoeHLbT7x4fh2Os/8ObDDwrUcCJPqxe2b2RB5E2d0vepYigknHeLE7gwzlNQ==
dependencies:
- "@angular-devkit/architect" "0.1703.5"
- "@angular-devkit/core" "17.3.5"
- "@angular-devkit/schematics" "17.3.5"
- "@schematics/angular" "17.3.5"
+ "@angular-devkit/architect" "0.1703.8"
+ "@angular-devkit/core" "17.3.8"
+ "@angular-devkit/schematics" "17.3.8"
+ "@schematics/angular" "17.3.8"
"@yarnpkg/lockfile" "1.1.0"
ansi-colors "4.1.3"
ini "4.1.2"
@@ -317,17 +318,17 @@
symbol-observable "4.0.0"
yargs "17.7.2"
-"@angular/common@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/common/-/common-17.3.5.tgz#901f5d85b78f5e28f36156064961d58732e73a7b"
- integrity sha512-Ox91WxSnOSrQ6I21cHi69EfT2Pxtd5Knb5AsdwpxqE57V2E7EnWMhb+LP+holCtFUhK529EGXCk788M+Elyw6g==
+"@angular/common@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/common/-/common-17.3.10.tgz#bd395d94678eba5c4ea42c6bafd8f3151c8c5dc7"
+ integrity sha512-6SfD21M3LujymmZsZQIxAsV8Bj5u6He6ImZ+p2rr7FAhFxpVJyKldK8LCmJcFsBD4srpQcxEZ0iDxXvg+0ihAw==
dependencies:
tslib "^2.3.0"
-"@angular/compiler-cli@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-17.3.5.tgz#d24cb2039d130b03a898ec3bedf7cbabb573ba03"
- integrity sha512-R53JNbbVDHWSGdL0e2vGQ5iJCrILOWZ1oemKjekOFB93fUBlEyi+nZmm4uTO7RU8PgjB0UpxI6ok5ZE3Amkt6A==
+"@angular/compiler-cli@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-17.3.10.tgz#84a7ee6ac0ab9e924132589a788abfd656f671a6"
+ integrity sha512-85SBphqRj3szac3FbeYgEZ+I6WaAlo5h7JX06BdjOLLiaoIwlFhLeAuG+jVekseV+95grFUxIsCMphWHi2e6hQ==
dependencies:
"@babel/core" "7.23.9"
"@jridgewell/sourcemap-codec" "^1.4.14"
@@ -338,10 +339,10 @@
tslib "^2.3.0"
yargs "^17.2.1"
-"@angular/compiler@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-17.3.5.tgz#308ac763c2a95fb6cea764d1ec3e8bd5f2384b89"
- integrity sha512-lTubBFNlpH9zK46+yeVI7VJQNUELLAB8W1ucndYLCA9Rr9Jop+rYIXijmr42AGokOYr7yLc8HRiSQ5e+X2pUQg==
+"@angular/compiler@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-17.3.10.tgz#345bcdc4db45893fd0eca900181230c67499bd1d"
+ integrity sha512-6Ce4siHyF0fCZBDm/cz+blJByGDu1/hbPkQVGmk5HGZTmCUeKkgyjoM6bZr7ssAsyGDRwxBh2SGHO4Ce31vuPA==
dependencies:
tslib "^2.3.0"
@@ -350,10 +351,10 @@
resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0.tgz#87e0bef4c369b6cadae07e3a4295778fc93799d5"
integrity sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==
-"@angular/core@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/core/-/core-17.3.5.tgz#5445e5dad4dc713b032dde10dc048169afe998db"
- integrity sha512-y6P27lcrKy3yMx/rtMuGsAnDyVEsS3BdyArTXcD0TOImVGHhVIaB0L95DUCam3ajTe2f2x39eozJZDh7QSpJaw==
+"@angular/core@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/core/-/core-17.3.10.tgz#129cd916e718c668b84db1cd25d227fa1cf2645a"
+ integrity sha512-ocEKu7X0yFCOvgJn1uZy76qjhsjKvULrO1k/BuIX0nwhp61DTGYTvCqKmwCBLM8/gvcKYH5vMKMHoQKtiSGE0A==
dependencies:
tslib "^2.3.0"
@@ -362,32 +363,32 @@
resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.0.0.tgz#227dc53e1ac81824f998c6e76000b7efc522641e"
integrity sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==
-"@angular/forms@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-17.3.5.tgz#68a1511c1c2b147d704f2579563840c3f94cb714"
- integrity sha512-Rf/8XWHdFYZQaOVTJ0QVwxQm9fDqQqIJc0yfPcH/DYL5pT7R0U2z98I5McZawzUBJUo1Zt1gijzDlzNUGf6jiA==
+"@angular/forms@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-17.3.10.tgz#9559ac2eb9411236375b7517c7ef9d3251c8e3c3"
+ integrity sha512-0VZWSXDi2M3DAGJlpdV3lo73Yo/73GPRqmfTOrvIoUIenFg5Dz6oNGzvt/1aRkRn6HKccjix6iMpH91EN65pWA==
dependencies:
tslib "^2.3.0"
-"@angular/language-service@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-17.3.5.tgz#64d31f5948f24bc2217047be1899b34c177c8cc6"
- integrity sha512-s3W5o+pRPU3jNWeeyO4XEdc28+s4MPhew+k0meQfZ11VMdmShzwFu5nPgOMmLB3fBhQqlSBrHUh1P9SB7Hu3FQ==
+"@angular/language-service@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-17.3.10.tgz#935d0bcfc078fcabf685669b5d8a83229cf0b46f"
+ integrity sha512-6y0yEnjuKGCnH+YxmZZUC/KEb2ZuB5z7y0AOj4PwOladMWSwHv71x1rz5MokBVBf7ZTeN2w89f9jSWBzSz+fPw==
-"@angular/localize@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-17.3.5.tgz#2af9f4f5db3c0b99d55534ef14058c6831a2fb4d"
- integrity sha512-/5iKRvnleA2vsf8zqNZaXeOBjFFq3FLrbot+ygfmk3uYqz949X0nXrXBKk9kpakw/WC6kgzK+tmiEHKQY6cLiQ==
+"@angular/localize@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-17.3.10.tgz#607996330e524ab6a6575ff625671de4b231c559"
+ integrity sha512-B/r+jsYiuxm2llBsOE2rKomB5vSnTnICWcfooBDtDUAfTZNQIoSdPt2SAIbRN/c4GLZsiU53k0+jLl67HdtO2g==
dependencies:
"@babel/core" "7.23.9"
"@types/babel__core" "7.20.5"
fast-glob "3.3.2"
yargs "^17.2.1"
-"@angular/material@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/material/-/material-17.3.5.tgz#66e5479ba342277b0549cc301f0578ef51c40c3c"
- integrity sha512-1+QqBQ8HVOwxOkx/v2n53JA9ALOee55yVDbnAv7TkseNN4JEDxOcE5TO5HGmdV2A4tcsXQ00MIdy04jiB4sCng==
+"@angular/material@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/material/-/material-17.3.10.tgz#db4c41bcc4ba6a6328be3d89dc95947a48555b54"
+ integrity sha512-hHMQES0tQPH5JW33W+mpBPuM8ybsloDTqFPuRV8cboDjosAWfJhzAKF3ozICpNlUrs62La/2Wu/756GcQrxebg==
dependencies:
"@material/animation" "15.0.0-canary.7f224ddd4.0"
"@material/auto-init" "15.0.0-canary.7f224ddd4.0"
@@ -438,40 +439,40 @@
"@material/typography" "15.0.0-canary.7f224ddd4.0"
tslib "^2.3.0"
-"@angular/platform-browser-dynamic@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.3.5.tgz#39cedb2144e093a7b6127a694565c6b1afb8b872"
- integrity sha512-KuS4j3Gh1h/CEj+bIOc/IcZIdiCB/DNbtUvz1eNp1o23aM8QutqelI3A4WBnQuR4yq8Z/8M3FH9F1OVwwhn2QQ==
+"@angular/platform-browser-dynamic@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.3.10.tgz#00fa7a90919f63e314ad1d687645e5a148084698"
+ integrity sha512-TW6G4+isdHM2ssQTRTobeAKtR2516pJ25BSwRb+9+Jw/ZAEYOOi+KQyofIFYQccaUjb3+LpjRcaZbtZ9m/Ispg==
dependencies:
tslib "^2.3.0"
-"@angular/platform-browser@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-17.3.5.tgz#f1b3832163a7bfccb8e7c3cafa0246226f03a6aa"
- integrity sha512-ITlu/GTD64Sr0FMaFCJiHoTJrEZw8qRFXjPjv3BKhAp5dQKcwnCm02o1NOaj5d8oIItIh5fbI2zP0CSU2qNZkQ==
+"@angular/platform-browser@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-17.3.10.tgz#7c513920fa8dbf52d0f70920101aad6ec71019d4"
+ integrity sha512-LEhBDOKm2A7nRmZqsafVp6OinRDG1OYZBSqjnT1jZ+f0CRRFIXz6aJ0TMPoU6vq9SLRJ7vrGD9P/eBf2hW00NQ==
dependencies:
tslib "^2.3.0"
-"@angular/pwa@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/pwa/-/pwa-17.3.5.tgz#c0f9fb156a4dcd8961de191638728f18bd431854"
- integrity sha512-qa1w36x/oRErS9eMTUkmVolA7G/d6lEshAs4RprGxh/2cZ5WkrOxdzb2u1KAEZr0X/C6118laFvr6KRyPCsxpw==
+"@angular/pwa@17.3.8":
+ version "17.3.8"
+ resolved "https://registry.yarnpkg.com/@angular/pwa/-/pwa-17.3.8.tgz#9bf5386d507c691a0b4e131071b703d22bba1641"
+ integrity sha512-NWp88mGEJWUhCaUFDdDMeen0Y81hxZoFNPX9/VaTQ5a2kNUjvQ08iI4ceJB89R4sQSMnmNr30c9Rovo1gS+RTw==
dependencies:
- "@angular-devkit/schematics" "17.3.5"
- "@schematics/angular" "17.3.5"
+ "@angular-devkit/schematics" "17.3.8"
+ "@schematics/angular" "17.3.8"
parse5-html-rewriting-stream "7.0.0"
-"@angular/router@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/router/-/router-17.3.5.tgz#6498d91560296424a2e2bc8a09cd0d9d81058a85"
- integrity sha512-KsIIs3t9IpxsdMSrJDZzO5WgIWkVE6Ep5WWiSyPIgEfA+ndGpJLmyv0d/r1yKKlYUJxz7Hde55o4thgT2n2x/A==
+"@angular/router@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/router/-/router-17.3.10.tgz#4cbea96eb5a11ef011a4e4e31cecb7c3c72d8fce"
+ integrity sha512-HlZlR9BOLoEKGOSMjmL5EfYL7F7PeDifbFi0dYWNcrG8zFrVKFklB1cuBdJhfPZgYhDEoGms/EToD71tg5wliA==
dependencies:
tslib "^2.3.0"
-"@angular/service-worker@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-17.3.5.tgz#7e297ef8a654b517cbb93cb6ac702df815068e21"
- integrity sha512-YJBSxlrLDUINHjy1GTrbfmUJOUf2ArLN2y/nM4OOsIev7w0d6PIqruKX7wnT6tl6jJZwFRcEGulo/bSd68P63A==
+"@angular/service-worker@17.3.10":
+ version "17.3.10"
+ resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-17.3.10.tgz#324d8e444e135899ecdd4ea404f0dc1ef89f0ecd"
+ integrity sha512-tRoO1WrA4TxLyQK4DFtant3R93DQuGs/DIvhYZ5Tpevaj8h/gL1Uwxzj3GAyZpMSbXvETlHAK8HcwG4IkXkxBg==
dependencies:
tslib "^2.3.0"
@@ -4888,10 +4889,10 @@
dependencies:
tslib "2.6.1"
-"@ngtools/webpack@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-17.3.5.tgz#5f1a8d6e59e8fb37b8f1a4fe69116d9f46f2102f"
- integrity sha512-0heI0yHUckdGI8uywu/wkp24KR/tdYMKYJOaYIU+9JydyN1zJRpbR7x0thddl7+k/zu2ZGbfFdv1779Ecw/xdA==
+"@ngtools/webpack@17.3.8":
+ version "17.3.8"
+ resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-17.3.8.tgz#96c0f99055910dd21438d7697d625fdeb7261015"
+ integrity sha512-CjSVVa/9fzMpEDQP01SC4colKCbZwj7vUq0H2bivp8jVsmd21x9Fu0gDBH0Y9NdfAIm4eGZvmiZKMII3vIOaYQ==
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -5860,13 +5861,13 @@
"@angular-devkit/schematics" "17.3.3"
jsonc-parser "3.2.1"
-"@schematics/angular@17.3.5":
- version "17.3.5"
- resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-17.3.5.tgz#c58a6afef977e9280cc7a5e24e70b058f68fdc5e"
- integrity sha512-SWCK16Eob0K86hpZ3NHmrTS6LSzTlhvnIdf3BXC6nzoiyDhcAS0oJ2Tjdq1opW/PaL1hB7MulcbIhxYln5du0w==
+"@schematics/angular@17.3.8":
+ version "17.3.8"
+ resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-17.3.8.tgz#0b4adf9d05b22176b99ad8e311a274c102d74822"
+ integrity sha512-2g4OmSyE9YGq50Uj7fNI26P/TSAFJ7ZuirwTF2O7Xc4XRQ29/tYIIqhezpNlTb6rlYblcQuMcUZBrMfWJHcqJw==
dependencies:
- "@angular-devkit/core" "17.3.5"
- "@angular-devkit/schematics" "17.3.5"
+ "@angular-devkit/core" "17.3.8"
+ "@angular-devkit/schematics" "17.3.8"
jsonc-parser "3.2.1"
"@schematics/angular@^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0":
@@ -7712,13 +7713,13 @@
"@typescript-eslint/types" "6.21.0"
"@typescript-eslint/visitor-keys" "6.21.0"
-"@typescript-eslint/scope-manager@7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz#cfb437b09a84f95a0930a76b066e89e35d94e3da"
- integrity sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==
+"@typescript-eslint/scope-manager@7.10.0":
+ version "7.10.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz#054a27b1090199337a39cf755f83d9f2ce26546b"
+ integrity sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==
dependencies:
- "@typescript-eslint/types" "7.2.0"
- "@typescript-eslint/visitor-keys" "7.2.0"
+ "@typescript-eslint/types" "7.10.0"
+ "@typescript-eslint/visitor-keys" "7.10.0"
"@typescript-eslint/scope-manager@7.5.0":
version "7.5.0"
@@ -7738,15 +7739,15 @@
debug "^4.3.4"
ts-api-utils "^1.0.1"
-"@typescript-eslint/type-utils@7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.2.0.tgz#7be5c30e9b4d49971b79095a1181324ef6089a19"
- integrity sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==
+"@typescript-eslint/type-utils@7.10.0":
+ version "7.10.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz#8a75accce851d0a331aa9331268ef64e9b300270"
+ integrity sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==
dependencies:
- "@typescript-eslint/typescript-estree" "7.2.0"
- "@typescript-eslint/utils" "7.2.0"
+ "@typescript-eslint/typescript-estree" "7.10.0"
+ "@typescript-eslint/utils" "7.10.0"
debug "^4.3.4"
- ts-api-utils "^1.0.1"
+ ts-api-utils "^1.3.0"
"@typescript-eslint/type-utils@^7.3.0":
version "7.5.0"
@@ -7768,10 +7769,10 @@
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d"
integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==
-"@typescript-eslint/types@7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.2.0.tgz#0feb685f16de320e8520f13cca30779c8b7c403f"
- integrity sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==
+"@typescript-eslint/types@7.10.0":
+ version "7.10.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.10.0.tgz#da92309c97932a3a033762fd5faa8b067de84e3b"
+ integrity sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==
"@typescript-eslint/types@7.5.0":
version "7.5.0"
@@ -7805,19 +7806,19 @@
semver "^7.5.4"
ts-api-utils "^1.0.1"
-"@typescript-eslint/typescript-estree@7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz#5beda2876c4137f8440c5a84b4f0370828682556"
- integrity sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==
+"@typescript-eslint/typescript-estree@7.10.0":
+ version "7.10.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz#6dcdc5de3149916a6a599fa89dde5c471b88b8bb"
+ integrity sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==
dependencies:
- "@typescript-eslint/types" "7.2.0"
- "@typescript-eslint/visitor-keys" "7.2.0"
+ "@typescript-eslint/types" "7.10.0"
+ "@typescript-eslint/visitor-keys" "7.10.0"
debug "^4.3.4"
globby "^11.1.0"
is-glob "^4.0.3"
- minimatch "9.0.3"
- semver "^7.5.4"
- ts-api-utils "^1.0.1"
+ minimatch "^9.0.4"
+ semver "^7.6.0"
+ ts-api-utils "^1.3.0"
"@typescript-eslint/typescript-estree@7.5.0":
version "7.5.0"
@@ -7846,18 +7847,15 @@
"@typescript-eslint/typescript-estree" "6.21.0"
semver "^7.5.4"
-"@typescript-eslint/utils@7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.2.0.tgz#fc8164be2f2a7068debb4556881acddbf0b7ce2a"
- integrity sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==
+"@typescript-eslint/utils@7.10.0":
+ version "7.10.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.10.0.tgz#8ee43e5608c9f439524eaaea8de5b358b15c51b3"
+ integrity sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==
dependencies:
"@eslint-community/eslint-utils" "^4.4.0"
- "@types/json-schema" "^7.0.12"
- "@types/semver" "^7.5.0"
- "@typescript-eslint/scope-manager" "7.2.0"
- "@typescript-eslint/types" "7.2.0"
- "@typescript-eslint/typescript-estree" "7.2.0"
- semver "^7.5.4"
+ "@typescript-eslint/scope-manager" "7.10.0"
+ "@typescript-eslint/types" "7.10.0"
+ "@typescript-eslint/typescript-estree" "7.10.0"
"@typescript-eslint/utils@7.5.0", "@typescript-eslint/utils@^7.3.0":
version "7.5.0"
@@ -7902,13 +7900,13 @@
"@typescript-eslint/types" "6.21.0"
eslint-visitor-keys "^3.4.1"
-"@typescript-eslint/visitor-keys@7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz#5035f177752538a5750cca1af6044b633610bf9e"
- integrity sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==
+"@typescript-eslint/visitor-keys@7.10.0":
+ version "7.10.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz#2af2e91e73a75dd6b70b4486c48ae9d38a485a78"
+ integrity sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==
dependencies:
- "@typescript-eslint/types" "7.2.0"
- eslint-visitor-keys "^3.4.1"
+ "@typescript-eslint/types" "7.10.0"
+ eslint-visitor-keys "^3.4.3"
"@typescript-eslint/visitor-keys@7.5.0":
version "7.5.0"
@@ -15164,6 +15162,13 @@ minimatch@^5.0.1:
dependencies:
brace-expansion "^2.0.1"
+minimatch@^9.0.4:
+ version "9.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51"
+ integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==
+ dependencies:
+ brace-expansion "^2.0.1"
+
minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
@@ -17599,6 +17604,11 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+semver@^7.6.0:
+ version "7.6.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
+ integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
+
semver@~7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
@@ -18589,6 +18599,11 @@ ts-api-utils@^1.0.1:
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331"
integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==
+ts-api-utils@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
+ integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
+
ts-dedent@^2.0.0, ts-dedent@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5"
From a061595101b1d464218b96b4b02bf67a390343ab Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Mon, 27 May 2024 13:55:24 +0200
Subject: [PATCH 12/92] Feature/upgrade class validator to version 0.14.1
(#3431)
* Upgrade class-validator to version 0.14.1
* Update changelog
---
CHANGELOG.md | 1 +
package.json | 2 +-
yarn.lock | 38 +++++++++++++++++++-------------------
3 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2ce855788..bd747b1dd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Upgraded `angular` from version `17.3.5` to `17.3.10`
+- Upgraded `class-validator` from version `0.14.0` to `0.14.1`
- Upgraded `Nx` from version `19.0.2` to `19.0.5`
- Upgraded `prisma` from version `5.13.0` to `5.14.0`
diff --git a/package.json b/package.json
index 7843fbd83..cbb5ccc53 100644
--- a/package.json
+++ b/package.json
@@ -101,7 +101,7 @@
"chartjs-plugin-datalabels": "2.2.0",
"cheerio": "1.0.0-rc.12",
"class-transformer": "0.5.1",
- "class-validator": "0.14.0",
+ "class-validator": "0.14.1",
"color": "4.2.3",
"countries-and-timezones": "3.4.1",
"countries-list": "3.1.0",
diff --git a/yarn.lock b/yarn.lock
index 922c97b5d..2a2eb91ab 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7640,10 +7640,10 @@
resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.7.tgz#b14cebc75455eeeb160d5fe23c2fcc0c64f724d8"
integrity sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==
-"@types/validator@^13.7.10":
- version "13.11.5"
- resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.11.5.tgz#1911964fd5556b08d3479d1ded977c06f89a44a7"
- integrity sha512-xW4qsT4UIYILu+7ZrBnfQdBYniZrMLYYK3wN9M/NdeIHgBN5pZI2/8Q7UfdWIcr5RLJv/OGENsx91JIpUUoC7Q==
+"@types/validator@^13.11.8":
+ version "13.11.10"
+ resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.11.10.tgz#feb364018cdd1f3d970a9e8c7f1c314c0a264fff"
+ integrity sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==
"@types/webpack-env@^1.18.0":
version "1.18.3"
@@ -9442,14 +9442,14 @@ class-transformer@0.5.1:
resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.5.1.tgz#24147d5dffd2a6cea930a3250a677addf96ab336"
integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==
-class-validator@0.14.0:
- version "0.14.0"
- resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.0.tgz#40ed0ecf3c83b2a8a6a320f4edb607be0f0df159"
- integrity sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==
+class-validator@0.14.1:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.1.tgz#ff2411ed8134e9d76acfeb14872884448be98110"
+ integrity sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==
dependencies:
- "@types/validator" "^13.7.10"
- libphonenumber-js "^1.10.14"
- validator "^13.7.0"
+ "@types/validator" "^13.11.8"
+ libphonenumber-js "^1.10.53"
+ validator "^13.9.0"
clean-css@^5.2.2:
version "5.3.2"
@@ -14417,10 +14417,10 @@ levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
-libphonenumber-js@^1.10.14:
- version "1.10.48"
- resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.48.tgz#3c426b4aa21dfe3210bfbda47d208acffa3631bf"
- integrity sha512-Vvcgt4+o8+puIBJZLdMshPYx9nRN3/kTT7HPtOyfYrSQuN9PGBF1KUv0g07fjNzt4E4GuA7FnsLb+WeAMzyRQg==
+libphonenumber-js@^1.10.53:
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.11.1.tgz#2596683e1876bfee74082bb49339fe0a85ae34f9"
+ integrity sha512-Wze1LPwcnzvcKGcRHFGFECTaLzxOtujwpf924difr5zniyYv1C2PiW0419qDR7m8lKDxsImu5mwxFuXhXpjmvw==
license-webpack-plugin@4.0.2, license-webpack-plugin@^4.0.2:
version "4.0.2"
@@ -19185,10 +19185,10 @@ validate-npm-package-name@^5.0.0:
dependencies:
builtins "^5.0.0"
-validator@^13.7.0:
- version "13.11.0"
- resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b"
- integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==
+validator@^13.9.0:
+ version "13.12.0"
+ resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f"
+ integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==
vary@^1, vary@~1.1.2:
version "1.1.2"
From 918d0b85d43603a35cbcf9a77b3c04cb8f717c1e Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Tue, 28 May 2024 13:47:45 +0200
Subject: [PATCH 13/92] Feature/update passport dependencies (#3433)
* Update passport dependencies
* Refactor Google strategy
* Update changelog
---
CHANGELOG.md | 3 ++
apps/api/src/app/auth/google.strategy.ts | 15 ++++----
package.json | 8 ++---
yarn.lock | 44 ++++++++++++------------
4 files changed, 35 insertions(+), 35 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bd747b1dd..d16d32925 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,9 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
+- Upgraded `@nestjs/passport` from version `10.0.0` to `10.0.3`
- Upgraded `angular` from version `17.3.5` to `17.3.10`
- Upgraded `class-validator` from version `0.14.0` to `0.14.1`
- Upgraded `Nx` from version `19.0.2` to `19.0.5`
+- Upgraded `passport` from version `0.6.0` to `0.7.0`
+- Upgraded `passport-jwt` from version `4.0.0` to `4.0.1`
- Upgraded `prisma` from version `5.13.0` to `5.14.0`
## 2.82.0 - 2024-05-22
diff --git a/apps/api/src/app/auth/google.strategy.ts b/apps/api/src/app/auth/google.strategy.ts
index 4abc1105a..4d024603b 100644
--- a/apps/api/src/app/auth/google.strategy.ts
+++ b/apps/api/src/app/auth/google.strategy.ts
@@ -3,7 +3,7 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration/con
import { Injectable, Logger } from '@nestjs/common';
import { PassportStrategy } from '@nestjs/passport';
import { Provider } from '@prisma/client';
-import { Strategy } from 'passport-google-oauth20';
+import { Profile, Strategy } from 'passport-google-oauth20';
import { AuthService } from './auth.service';
@@ -11,7 +11,7 @@ import { AuthService } from './auth.service';
export class GoogleStrategy extends PassportStrategy(Strategy, 'google') {
public constructor(
private readonly authService: AuthService,
- readonly configurationService: ConfigurationService
+ private readonly configurationService: ConfigurationService
) {
super({
callbackURL: `${configurationService.get(
@@ -20,7 +20,7 @@ export class GoogleStrategy extends PassportStrategy(Strategy, 'google') {
clientID: configurationService.get('GOOGLE_CLIENT_ID'),
clientSecret: configurationService.get('GOOGLE_SECRET'),
passReqToCallback: true,
- scope: ['email', 'profile']
+ scope: ['profile']
});
}
@@ -28,20 +28,17 @@ export class GoogleStrategy extends PassportStrategy(Strategy, 'google') {
request: any,
token: string,
refreshToken: string,
- profile,
+ profile: Profile,
done: Function,
done2: Function
) {
try {
- const jwt: string = await this.authService.validateOAuthLogin({
+ const jwt = await this.authService.validateOAuthLogin({
provider: Provider.GOOGLE,
thirdPartyId: profile.id
});
- const user = {
- jwt
- };
- done(null, user);
+ done(null, { jwt });
} catch (error) {
Logger.error(error, 'GoogleStrategy');
done(error, false);
diff --git a/package.json b/package.json
index cbb5ccc53..4f71ec9d2 100644
--- a/package.json
+++ b/package.json
@@ -80,7 +80,7 @@
"@nestjs/core": "10.1.3",
"@nestjs/event-emitter": "2.0.4",
"@nestjs/jwt": "10.1.0",
- "@nestjs/passport": "10.0.0",
+ "@nestjs/passport": "10.0.3",
"@nestjs/platform-express": "10.1.3",
"@nestjs/schedule": "3.0.2",
"@nestjs/serve-static": "4.0.0",
@@ -123,9 +123,9 @@
"ngx-skeleton-loader": "7.0.0",
"ngx-stripe": "15.5.0",
"papaparse": "5.3.1",
- "passport": "0.6.0",
+ "passport": "0.7.0",
"passport-google-oauth20": "2.0.0",
- "passport-jwt": "4.0.0",
+ "passport-jwt": "4.0.1",
"prisma": "5.14.0",
"reflect-metadata": "0.1.13",
"rxjs": "7.5.6",
@@ -175,7 +175,7 @@
"@types/lodash": "4.17.0",
"@types/node": "18.16.9",
"@types/papaparse": "5.3.7",
- "@types/passport-google-oauth20": "2.0.11",
+ "@types/passport-google-oauth20": "2.0.16",
"@typescript-eslint/eslint-plugin": "6.21.0",
"@typescript-eslint/parser": "6.21.0",
"codelyzer": "6.0.1",
diff --git a/yarn.lock b/yarn.lock
index 2a2eb91ab..1793e4267 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4830,10 +4830,10 @@
"@types/jsonwebtoken" "9.0.2"
jsonwebtoken "9.0.0"
-"@nestjs/passport@10.0.0":
- version "10.0.0"
- resolved "https://registry.yarnpkg.com/@nestjs/passport/-/passport-10.0.0.tgz#92d36d4b8796b373da3f4d1a055db03cb246b127"
- integrity sha512-IlKKc6M7JOe+4dBbW6gZsXBSD05ZYgwfGf3GJhgCmUGYVqffpDdALQSS6JftnExrE+12rACoEmHkzYwKAGVK0Q==
+"@nestjs/passport@10.0.3":
+ version "10.0.3"
+ resolved "https://registry.yarnpkg.com/@nestjs/passport/-/passport-10.0.3.tgz#26ec5b2167d364e04962c115fcef80d10e185367"
+ integrity sha512-znJ9Y4S8ZDVY+j4doWAJ8EuuVO7SkQN3yOBmzxbGaXbvcSwFDAdGJ+OMCg52NdzIO4tQoN4pYKx8W6M0ArfFRQ==
"@nestjs/platform-express@10.1.3":
version "10.1.3"
@@ -7470,10 +7470,10 @@
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.1.tgz#27f7559836ad796cea31acb63163b203756a5b4e"
integrity sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng==
-"@types/passport-google-oauth20@2.0.11":
- version "2.0.11"
- resolved "https://registry.yarnpkg.com/@types/passport-google-oauth20/-/passport-google-oauth20-2.0.11.tgz#271ec71de3030a3e1c004b24e633e4b298ccba97"
- integrity sha512-9XMT1GfwhZL7UQEiCepLef55RNPHkbrCtsU7rsWPTEOsmu5qVIW8nSemtB4p+P24CuOhA+IKkv8LsPThYghGww==
+"@types/passport-google-oauth20@2.0.16":
+ version "2.0.16"
+ resolved "https://registry.yarnpkg.com/@types/passport-google-oauth20/-/passport-google-oauth20-2.0.16.tgz#9e39c1203d56496d89392538e6109626e253bc28"
+ integrity sha512-ayXK2CJ7uVieqhYOc6k/pIr5pcQxOLB6kBev+QUGS7oEZeTgIs1odDobXRqgfBPvXzl0wXCQHftV5220czZCPA==
dependencies:
"@types/express" "*"
"@types/passport" "*"
@@ -14217,10 +14217,10 @@ jsonwebtoken@9.0.0:
ms "^2.1.1"
semver "^7.3.8"
-jsonwebtoken@^8.2.0:
- version "8.5.1"
- resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
- integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
+jsonwebtoken@^9.0.0:
+ version "9.0.2"
+ resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3"
+ integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==
dependencies:
jws "^3.2.2"
lodash.includes "^4.3.0"
@@ -14231,7 +14231,7 @@ jsonwebtoken@^8.2.0:
lodash.isstring "^4.0.1"
lodash.once "^4.0.0"
ms "^2.1.1"
- semver "^5.6.0"
+ semver "^7.5.4"
jsprim@^2.0.2:
version "2.0.2"
@@ -16110,12 +16110,12 @@ passport-google-oauth20@2.0.0:
dependencies:
passport-oauth2 "1.x.x"
-passport-jwt@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.0.tgz#7f0be7ba942e28b9f5d22c2ebbb8ce96ef7cf065"
- integrity sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg==
+passport-jwt@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.1.tgz#c443795eff322c38d173faa0a3c481479646ec3d"
+ integrity sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ==
dependencies:
- jsonwebtoken "^8.2.0"
+ jsonwebtoken "^9.0.0"
passport-strategy "^1.0.0"
passport-oauth2@1.x.x:
@@ -16134,10 +16134,10 @@ passport-strategy@1.x.x, passport-strategy@^1.0.0:
resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4"
integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==
-passport@0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/passport/-/passport-0.6.0.tgz#e869579fab465b5c0b291e841e6cc95c005fac9d"
- integrity sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==
+passport@0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/passport/-/passport-0.7.0.tgz#3688415a59a48cf8068417a8a8092d4492ca3a05"
+ integrity sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==
dependencies:
passport-strategy "1.x.x"
pause "0.0.1"
From dd2936d7031848cc8238dc121683e4bc57ec3e27 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Wed, 29 May 2024 16:06:58 +0200
Subject: [PATCH 14/92] Feature/upgrade countup.js to version 2.8.0 (#3436)
* Upgrade countup.js to version 2.8.0
* Update changelog
---
CHANGELOG.md | 1 +
package.json | 2 +-
yarn.lock | 8 ++++----
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d16d32925..41fca944c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Upgraded `@nestjs/passport` from version `10.0.0` to `10.0.3`
- Upgraded `angular` from version `17.3.5` to `17.3.10`
- Upgraded `class-validator` from version `0.14.0` to `0.14.1`
+- Upgraded `countup.js` from version `2.3.2` to `2.8.0`
- Upgraded `Nx` from version `19.0.2` to `19.0.5`
- Upgraded `passport` from version `0.6.0` to `0.7.0`
- Upgraded `passport-jwt` from version `4.0.0` to `4.0.1`
diff --git a/package.json b/package.json
index 4f71ec9d2..836efe002 100644
--- a/package.json
+++ b/package.json
@@ -105,7 +105,7 @@
"color": "4.2.3",
"countries-and-timezones": "3.4.1",
"countries-list": "3.1.0",
- "countup.js": "2.3.2",
+ "countup.js": "2.8.0",
"date-fns": "2.29.3",
"envalid": "7.3.1",
"google-spreadsheet": "3.2.0",
diff --git a/yarn.lock b/yarn.lock
index 1793e4267..bab596cb7 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9937,10 +9937,10 @@ countries-list@3.1.0:
resolved "https://registry.yarnpkg.com/countries-list/-/countries-list-3.1.0.tgz#1cbe32f58659c7d6a1e744917689f24c84333ea8"
integrity sha512-HpTBLZba1VPTZSjUnUwR7SykxV7Z/7/+ZM5x5wi5tO99Qvom6bE2SC+AQ18016ujg3jSlYBbMITrHNnPAHSM9Q==
-countup.js@2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/countup.js/-/countup.js-2.3.2.tgz#9a91d95780be1c908d1e6feb548625f353f57988"
- integrity sha512-dQ7F/CmKGjaO6cDfhtEXwsKVlXIpJ89dFs8PvkaZH9jBVJ2Z8GU4iwG/qP7MgY8qwr+1skbwR6qecWWQLUzB8Q==
+countup.js@2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/countup.js/-/countup.js-2.8.0.tgz#64951f2df3ede28839413d654d8fef28251c32a8"
+ integrity sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==
create-jest@^29.7.0:
version "29.7.0"
From 02cfebd98c4f3d7c01e878aefc2fd2a95fe4e9ac Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Thu, 30 May 2024 20:45:32 +0200
Subject: [PATCH 15/92] Feature/upgrade yahoo finance2 to version 2.11.3
(#3441)
* Upgrade yahoo-finance2 to version 2.11.3
* Update changelog
---
CHANGELOG.md | 1 +
package.json | 2 +-
yarn.lock | 8 ++++----
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 41fca944c..06958e2e6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Upgraded `passport` from version `0.6.0` to `0.7.0`
- Upgraded `passport-jwt` from version `4.0.0` to `4.0.1`
- Upgraded `prisma` from version `5.13.0` to `5.14.0`
+- Upgraded `yahoo-finance2` from version `2.11.2` to `2.11.3`
## 2.82.0 - 2024-05-22
diff --git a/package.json b/package.json
index 836efe002..79469835f 100644
--- a/package.json
+++ b/package.json
@@ -133,7 +133,7 @@
"svgmap": "2.6.0",
"twitter-api-v2": "1.14.2",
"uuid": "9.0.1",
- "yahoo-finance2": "2.11.2",
+ "yahoo-finance2": "2.11.3",
"zone.js": "0.14.5"
},
"devDependencies": {
diff --git a/yarn.lock b/yarn.lock
index bab596cb7..12b0bdf30 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -19662,10 +19662,10 @@ y18n@^5.0.5:
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
-yahoo-finance2@2.11.2:
- version "2.11.2"
- resolved "https://registry.yarnpkg.com/yahoo-finance2/-/yahoo-finance2-2.11.2.tgz#44f35105a2500fd1da22ac4f4393106f2bfec6d1"
- integrity sha512-S5lHKqneMXMKN/rxowqErEfkvXJE6s/SPuekT7UkOVbsSyRcptea/U3Mud+ikOEXEbKXPiZrU0Jy+iF51ITuSw==
+yahoo-finance2@2.11.3:
+ version "2.11.3"
+ resolved "https://registry.yarnpkg.com/yahoo-finance2/-/yahoo-finance2-2.11.3.tgz#082fb14ac6312f3b91be4e9a0cc1a97e96c42944"
+ integrity sha512-yN4ADFNi2oNYtO79ntbEkSWdVi4KVmGYLwDJ5KV0czxILbAGj4ah6oCBYvMONeHAeDqxtS62zrG8xrHNF/2STw==
dependencies:
"@types/tough-cookie" "^4.0.2"
ajv "8.10.0"
From fb326fe0cc486221722ccd28983cab44cbda09f6 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Thu, 30 May 2024 20:47:43 +0200
Subject: [PATCH 16/92] Release 2.83.0 (#3442)
---
CHANGELOG.md | 2 +-
package.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 06958e2e6..d26ab416e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## Unreleased
+## 2.83.0 - 2024-05-30
### Changed
diff --git a/package.json b/package.json
index 79469835f..bab74e542 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ghostfolio",
- "version": "2.82.0",
+ "version": "2.83.0",
"homepage": "https://ghostfol.io",
"license": "AGPL-3.0",
"repository": "https://github.com/ghostfolio/ghostfolio",
From 4355c96ab6c1d9932cb22080a3d325dc2e0aeb1e Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Fri, 31 May 2024 17:29:19 +0200
Subject: [PATCH 17/92] Bugfix/fix initial annual interest rate in fire
calculator (#3437)
* Fix initial annual interest rate
* Update changelog
---
CHANGELOG.md | 6 ++++
.../fire-calculator.component.ts | 34 +++++++++----------
2 files changed, 23 insertions(+), 17 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d26ab416e..9ad4dd2fc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## Unreleased
+
+### Fixed
+
+- Fixed an issue with the initial annual interest rate in the _FIRE_ calculator
+
## 2.83.0 - 2024-05-30
### Changed
diff --git a/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts b/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
index 4f6c8dc08..bd52d8b79 100644
--- a/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
+++ b/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
@@ -123,19 +123,6 @@ export class GfFireCalculatorComponent implements OnChanges, OnDestroy {
Tooltip
);
- this.calculatorForm.setValue(
- {
- annualInterestRate: this.annualInterestRate,
- paymentPerPeriod: this.savingsRate,
- principalInvestmentAmount: 0,
- projectedTotalAmount: this.projectedTotalAmount,
- retirementDate: this.retirementDate ?? this.DEFAULT_RETIREMENT_DATE
- },
- {
- emitEvent: false
- }
- );
-
this.calculatorForm.valueChanges
.pipe(takeUntil(this.unsubscribeSubject))
.subscribe(() => {
@@ -169,9 +156,22 @@ export class GfFireCalculatorComponent implements OnChanges, OnDestroy {
}
public ngOnChanges() {
- this.periodsToRetire = this.getPeriodsToRetire();
-
if (isNumber(this.fireWealth) && this.fireWealth >= 0) {
+ this.calculatorForm.setValue(
+ {
+ annualInterestRate: this.annualInterestRate,
+ paymentPerPeriod: this.savingsRate,
+ principalInvestmentAmount: 0,
+ projectedTotalAmount: this.projectedTotalAmount,
+ retirementDate: this.retirementDate ?? this.DEFAULT_RETIREMENT_DATE
+ },
+ {
+ emitEvent: false
+ }
+ );
+
+ this.periodsToRetire = this.getPeriodsToRetire();
+
setTimeout(() => {
// Wait for the chartCanvas
this.calculatorForm.patchValue(
@@ -409,9 +409,9 @@ export class GfFireCalculatorComponent implements OnChanges, OnDestroy {
if (this.projectedTotalAmount) {
const periods = this.fireCalculatorService.calculatePeriodsToRetire({
P: this.getP(),
- totalAmount: this.projectedTotalAmount,
PMT: this.getPMT(),
- r: this.getR()
+ r: this.getR(),
+ totalAmount: this.projectedTotalAmount
});
return periods;
From b12ac1fe8433a636032300e54837728fdb66d754 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sat, 1 Jun 2024 10:02:43 +0200
Subject: [PATCH 18/92] Feature/simplify module imports of api (#3443)
* Simplify module imports
---
.../api/src/app/account/account.controller.ts | 2 +-
apps/api/src/app/account/account.module.ts | 8 +--
apps/api/src/app/admin/admin.controller.ts | 2 +-
apps/api/src/app/admin/admin.module.ts | 4 +-
.../src/app/auth-device/auth-device.module.ts | 2 -
.../app/auth-device/auth-device.service.ts | 6 +-
.../src/app/benchmark/benchmark.controller.ts | 4 +-
.../api/src/app/benchmark/benchmark.module.ts | 8 ++-
apps/api/src/app/cache/cache.module.ts | 16 +----
apps/api/src/app/export/export.module.ts | 14 +---
apps/api/src/app/health/health.controller.ts | 2 +-
apps/api/src/app/health/health.module.ts | 8 ++-
apps/api/src/app/import/import.controller.ts | 4 +-
apps/api/src/app/import/import.module.ts | 6 +-
apps/api/src/app/info/info.controller.ts | 2 +-
apps/api/src/app/info/info.module.ts | 2 +
apps/api/src/app/logo/logo.controller.ts | 2 +-
apps/api/src/app/logo/logo.module.ts | 7 +-
apps/api/src/app/order/order.controller.ts | 6 +-
apps/api/src/app/order/order.module.ts | 10 +--
.../src/app/portfolio/portfolio.controller.ts | 70 +++++++++----------
.../api/src/app/portfolio/portfolio.module.ts | 6 ++
apps/api/src/app/sitemap/sitemap.module.ts | 19 +----
apps/api/src/app/symbol/symbol.controller.ts | 4 +-
apps/api/src/app/symbol/symbol.module.ts | 8 ++-
apps/api/src/app/user/user.service.ts | 22 ------
.../redact-values-in-response.interceptor.ts | 19 ++---
.../redact-values-in-response.module.ts | 4 ++
...form-data-source-in-request.interceptor.ts | 0
...transform-data-source-in-request.module.ts | 11 +++
...orm-data-source-in-response.interceptor.ts | 0
...ransform-data-source-in-response.module.ts | 11 +++
libs/common/src/lib/permissions.ts | 24 ++++++-
33 files changed, 156 insertions(+), 157 deletions(-)
rename apps/api/src/interceptors/{ => redact-values-in-response}/redact-values-in-response.interceptor.ts (85%)
create mode 100644 apps/api/src/interceptors/redact-values-in-response/redact-values-in-response.module.ts
rename apps/api/src/interceptors/{ => transform-data-source-in-request}/transform-data-source-in-request.interceptor.ts (100%)
create mode 100644 apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.module.ts
rename apps/api/src/interceptors/{ => transform-data-source-in-response}/transform-data-source-in-response.interceptor.ts (100%)
create mode 100644 apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.module.ts
diff --git a/apps/api/src/app/account/account.controller.ts b/apps/api/src/app/account/account.controller.ts
index 31c2ee76f..594a733f7 100644
--- a/apps/api/src/app/account/account.controller.ts
+++ b/apps/api/src/app/account/account.controller.ts
@@ -2,7 +2,7 @@ import { AccountBalanceService } from '@ghostfolio/api/app/account-balance/accou
import { PortfolioService } from '@ghostfolio/api/app/portfolio/portfolio.service';
import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator';
import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard';
-import { RedactValuesInResponseInterceptor } from '@ghostfolio/api/interceptors/redact-values-in-response.interceptor';
+import { RedactValuesInResponseInterceptor } from '@ghostfolio/api/interceptors/redact-values-in-response/redact-values-in-response.interceptor';
import { ImpersonationService } from '@ghostfolio/api/services/impersonation/impersonation.service';
import { HEADER_KEY_IMPERSONATION } from '@ghostfolio/common/config';
import {
diff --git a/apps/api/src/app/account/account.module.ts b/apps/api/src/app/account/account.module.ts
index 75be85f5c..1c2d20216 100644
--- a/apps/api/src/app/account/account.module.ts
+++ b/apps/api/src/app/account/account.module.ts
@@ -1,9 +1,7 @@
import { AccountBalanceModule } from '@ghostfolio/api/app/account-balance/account-balance.module';
import { PortfolioModule } from '@ghostfolio/api/app/portfolio/portfolio.module';
-import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module';
-import { UserModule } from '@ghostfolio/api/app/user/user.module';
+import { RedactValuesInResponseModule } from '@ghostfolio/api/interceptors/redact-values-in-response/redact-values-in-response.module';
import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
-import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.module';
import { ImpersonationModule } from '@ghostfolio/api/services/impersonation/impersonation.module';
import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module';
@@ -19,13 +17,11 @@ import { AccountService } from './account.service';
imports: [
AccountBalanceModule,
ConfigurationModule,
- DataProviderModule,
ExchangeRateDataModule,
ImpersonationModule,
PortfolioModule,
PrismaModule,
- RedisCacheModule,
- UserModule
+ RedactValuesInResponseModule
],
providers: [AccountService]
})
diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts
index 298a471c3..4494fef7a 100644
--- a/apps/api/src/app/admin/admin.controller.ts
+++ b/apps/api/src/app/admin/admin.controller.ts
@@ -1,6 +1,6 @@
import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator';
import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard';
-import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request.interceptor';
+import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
import { ApiService } from '@ghostfolio/api/services/api/api.service';
import { DataGatheringService } from '@ghostfolio/api/services/data-gathering/data-gathering.service';
import { ManualService } from '@ghostfolio/api/services/data-provider/manual/manual.service';
diff --git a/apps/api/src/app/admin/admin.module.ts b/apps/api/src/app/admin/admin.module.ts
index d0557156a..82d03395b 100644
--- a/apps/api/src/app/admin/admin.module.ts
+++ b/apps/api/src/app/admin/admin.module.ts
@@ -1,4 +1,5 @@
import { SubscriptionModule } from '@ghostfolio/api/app/subscription/subscription.module';
+import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
import { ApiModule } from '@ghostfolio/api/services/api/api.module';
import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering/data-gathering.module';
@@ -27,7 +28,8 @@ import { QueueModule } from './queue/queue.module';
PropertyModule,
QueueModule,
SubscriptionModule,
- SymbolProfileModule
+ SymbolProfileModule,
+ TransformDataSourceInRequestModule
],
controllers: [AdminController],
providers: [AdminService],
diff --git a/apps/api/src/app/auth-device/auth-device.module.ts b/apps/api/src/app/auth-device/auth-device.module.ts
index 89689e5d2..515efa155 100644
--- a/apps/api/src/app/auth-device/auth-device.module.ts
+++ b/apps/api/src/app/auth-device/auth-device.module.ts
@@ -1,6 +1,5 @@
import { AuthDeviceController } from '@ghostfolio/api/app/auth-device/auth-device.controller';
import { AuthDeviceService } from '@ghostfolio/api/app/auth-device/auth-device.service';
-import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module';
import { Module } from '@nestjs/common';
@@ -9,7 +8,6 @@ import { JwtModule } from '@nestjs/jwt';
@Module({
controllers: [AuthDeviceController],
imports: [
- ConfigurationModule,
JwtModule.register({
secret: process.env.JWT_SECRET_KEY,
signOptions: { expiresIn: '180 days' }
diff --git a/apps/api/src/app/auth-device/auth-device.service.ts b/apps/api/src/app/auth-device/auth-device.service.ts
index b24df0ae6..59208a1f3 100644
--- a/apps/api/src/app/auth-device/auth-device.service.ts
+++ b/apps/api/src/app/auth-device/auth-device.service.ts
@@ -1,4 +1,3 @@
-import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service';
import { Injectable } from '@nestjs/common';
@@ -6,10 +5,7 @@ import { AuthDevice, Prisma } from '@prisma/client';
@Injectable()
export class AuthDeviceService {
- public constructor(
- private readonly configurationService: ConfigurationService,
- private readonly prismaService: PrismaService
- ) {}
+ public constructor(private readonly prismaService: PrismaService) {}
public async authDevice(
where: Prisma.AuthDeviceWhereUniqueInput
diff --git a/apps/api/src/app/benchmark/benchmark.controller.ts b/apps/api/src/app/benchmark/benchmark.controller.ts
index 184214384..7ac0e8c96 100644
--- a/apps/api/src/app/benchmark/benchmark.controller.ts
+++ b/apps/api/src/app/benchmark/benchmark.controller.ts
@@ -1,8 +1,8 @@
import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator';
import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard';
import { getInterval } from '@ghostfolio/api/helper/portfolio.helper';
-import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request.interceptor';
-import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response.interceptor';
+import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
+import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor';
import type {
BenchmarkMarketDataDetails,
BenchmarkResponse,
diff --git a/apps/api/src/app/benchmark/benchmark.module.ts b/apps/api/src/app/benchmark/benchmark.module.ts
index 7371588d1..e7d1e9435 100644
--- a/apps/api/src/app/benchmark/benchmark.module.ts
+++ b/apps/api/src/app/benchmark/benchmark.module.ts
@@ -1,6 +1,7 @@
import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module';
import { SymbolModule } from '@ghostfolio/api/app/symbol/symbol.module';
-import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
+import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
+import { TransformDataSourceInResponseModule } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.module';
import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.module';
import { MarketDataModule } from '@ghostfolio/api/services/market-data/market-data.module';
@@ -17,7 +18,6 @@ import { BenchmarkService } from './benchmark.service';
controllers: [BenchmarkController],
exports: [BenchmarkService],
imports: [
- ConfigurationModule,
DataProviderModule,
ExchangeRateDataModule,
MarketDataModule,
@@ -25,7 +25,9 @@ import { BenchmarkService } from './benchmark.service';
PropertyModule,
RedisCacheModule,
SymbolModule,
- SymbolProfileModule
+ SymbolProfileModule,
+ TransformDataSourceInRequestModule,
+ TransformDataSourceInResponseModule
],
providers: [BenchmarkService]
})
diff --git a/apps/api/src/app/cache/cache.module.ts b/apps/api/src/app/cache/cache.module.ts
index 7a82e4366..d435c72a6 100644
--- a/apps/api/src/app/cache/cache.module.ts
+++ b/apps/api/src/app/cache/cache.module.ts
@@ -1,10 +1,4 @@
import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module';
-import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
-import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering/data-gathering.module';
-import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
-import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.module';
-import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module';
-import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/symbol-profile.module';
import { Module } from '@nestjs/common';
@@ -12,14 +6,6 @@ import { CacheController } from './cache.controller';
@Module({
controllers: [CacheController],
- imports: [
- ConfigurationModule,
- DataGatheringModule,
- DataProviderModule,
- ExchangeRateDataModule,
- PrismaModule,
- RedisCacheModule,
- SymbolProfileModule
- ]
+ imports: [RedisCacheModule]
})
export class CacheModule {}
diff --git a/apps/api/src/app/export/export.module.ts b/apps/api/src/app/export/export.module.ts
index 9bc5722a7..048c60359 100644
--- a/apps/api/src/app/export/export.module.ts
+++ b/apps/api/src/app/export/export.module.ts
@@ -1,10 +1,6 @@
import { AccountModule } from '@ghostfolio/api/app/account/account.module';
import { OrderModule } from '@ghostfolio/api/app/order/order.module';
-import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module';
import { ApiModule } from '@ghostfolio/api/services/api/api.module';
-import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
-import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering/data-gathering.module';
-import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
import { Module } from '@nestjs/common';
@@ -12,15 +8,7 @@ import { ExportController } from './export.controller';
import { ExportService } from './export.service';
@Module({
- imports: [
- AccountModule,
- ApiModule,
- ConfigurationModule,
- DataGatheringModule,
- DataProviderModule,
- OrderModule,
- RedisCacheModule
- ],
+ imports: [AccountModule, ApiModule, OrderModule],
controllers: [ExportController],
providers: [ExportService]
})
diff --git a/apps/api/src/app/health/health.controller.ts b/apps/api/src/app/health/health.controller.ts
index d899df410..31bdb2e8f 100644
--- a/apps/api/src/app/health/health.controller.ts
+++ b/apps/api/src/app/health/health.controller.ts
@@ -1,4 +1,4 @@
-import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request.interceptor';
+import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
import {
Controller,
diff --git a/apps/api/src/app/health/health.module.ts b/apps/api/src/app/health/health.module.ts
index bce798d16..6ed464401 100644
--- a/apps/api/src/app/health/health.module.ts
+++ b/apps/api/src/app/health/health.module.ts
@@ -1,4 +1,4 @@
-import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
+import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
import { DataEnhancerModule } from '@ghostfolio/api/services/data-provider/data-enhancer/data-enhancer.module';
import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
@@ -9,7 +9,11 @@ import { HealthService } from './health.service';
@Module({
controllers: [HealthController],
- imports: [ConfigurationModule, DataEnhancerModule, DataProviderModule],
+ imports: [
+ DataEnhancerModule,
+ DataProviderModule,
+ TransformDataSourceInRequestModule
+ ],
providers: [HealthService]
})
export class HealthModule {}
diff --git a/apps/api/src/app/import/import.controller.ts b/apps/api/src/app/import/import.controller.ts
index 29a06fc9f..b276a3c3d 100644
--- a/apps/api/src/app/import/import.controller.ts
+++ b/apps/api/src/app/import/import.controller.ts
@@ -1,7 +1,7 @@
import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator';
import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard';
-import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request.interceptor';
-import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response.interceptor';
+import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
+import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor';
import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
import { ImportResponse } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
diff --git a/apps/api/src/app/import/import.module.ts b/apps/api/src/app/import/import.module.ts
index ae8318044..47a4b5db3 100644
--- a/apps/api/src/app/import/import.module.ts
+++ b/apps/api/src/app/import/import.module.ts
@@ -4,6 +4,8 @@ import { OrderModule } from '@ghostfolio/api/app/order/order.module';
import { PlatformModule } from '@ghostfolio/api/app/platform/platform.module';
import { PortfolioModule } from '@ghostfolio/api/app/portfolio/portfolio.module';
import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module';
+import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
+import { TransformDataSourceInResponseModule } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.module';
import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering/data-gathering.module';
import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
@@ -30,7 +32,9 @@ import { ImportService } from './import.service';
PortfolioModule,
PrismaModule,
RedisCacheModule,
- SymbolProfileModule
+ SymbolProfileModule,
+ TransformDataSourceInRequestModule,
+ TransformDataSourceInResponseModule
],
providers: [ImportService]
})
diff --git a/apps/api/src/app/info/info.controller.ts b/apps/api/src/app/info/info.controller.ts
index 4890a444e..67d4101a3 100644
--- a/apps/api/src/app/info/info.controller.ts
+++ b/apps/api/src/app/info/info.controller.ts
@@ -1,4 +1,4 @@
-import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response.interceptor';
+import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor';
import { InfoItem } from '@ghostfolio/common/interfaces';
import { Controller, Get, UseInterceptors } from '@nestjs/common';
diff --git a/apps/api/src/app/info/info.module.ts b/apps/api/src/app/info/info.module.ts
index c28ef5869..ba58bc36f 100644
--- a/apps/api/src/app/info/info.module.ts
+++ b/apps/api/src/app/info/info.module.ts
@@ -2,6 +2,7 @@ import { BenchmarkModule } from '@ghostfolio/api/app/benchmark/benchmark.module'
import { PlatformModule } from '@ghostfolio/api/app/platform/platform.module';
import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module';
import { UserModule } from '@ghostfolio/api/app/user/user.module';
+import { TransformDataSourceInResponseModule } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.module';
import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering/data-gathering.module';
import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
@@ -34,6 +35,7 @@ import { InfoService } from './info.service';
RedisCacheModule,
SymbolProfileModule,
TagModule,
+ TransformDataSourceInResponseModule,
UserModule
],
providers: [InfoService]
diff --git a/apps/api/src/app/logo/logo.controller.ts b/apps/api/src/app/logo/logo.controller.ts
index 2ef65936e..0982a793f 100644
--- a/apps/api/src/app/logo/logo.controller.ts
+++ b/apps/api/src/app/logo/logo.controller.ts
@@ -1,4 +1,4 @@
-import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request.interceptor';
+import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
import {
Controller,
diff --git a/apps/api/src/app/logo/logo.module.ts b/apps/api/src/app/logo/logo.module.ts
index fe1a46ef6..1f59df1c8 100644
--- a/apps/api/src/app/logo/logo.module.ts
+++ b/apps/api/src/app/logo/logo.module.ts
@@ -1,3 +1,4 @@
+import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/symbol-profile.module';
@@ -8,7 +9,11 @@ import { LogoService } from './logo.service';
@Module({
controllers: [LogoController],
- imports: [ConfigurationModule, SymbolProfileModule],
+ imports: [
+ ConfigurationModule,
+ SymbolProfileModule,
+ TransformDataSourceInRequestModule
+ ],
providers: [LogoService]
})
export class LogoModule {}
diff --git a/apps/api/src/app/order/order.controller.ts b/apps/api/src/app/order/order.controller.ts
index e97fb1c11..f3709abae 100644
--- a/apps/api/src/app/order/order.controller.ts
+++ b/apps/api/src/app/order/order.controller.ts
@@ -1,9 +1,9 @@
import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator';
import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard';
import { getInterval } from '@ghostfolio/api/helper/portfolio.helper';
-import { RedactValuesInResponseInterceptor } from '@ghostfolio/api/interceptors/redact-values-in-response.interceptor';
-import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request.interceptor';
-import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response.interceptor';
+import { RedactValuesInResponseInterceptor } from '@ghostfolio/api/interceptors/redact-values-in-response/redact-values-in-response.interceptor';
+import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
+import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor';
import { ApiService } from '@ghostfolio/api/services/api/api.service';
import { DataGatheringService } from '@ghostfolio/api/services/data-gathering/data-gathering.service';
import { ImpersonationService } from '@ghostfolio/api/services/impersonation/impersonation.service';
diff --git a/apps/api/src/app/order/order.module.ts b/apps/api/src/app/order/order.module.ts
index d125bb62b..55b4cce82 100644
--- a/apps/api/src/app/order/order.module.ts
+++ b/apps/api/src/app/order/order.module.ts
@@ -2,9 +2,10 @@ import { AccountBalanceService } from '@ghostfolio/api/app/account-balance/accou
import { AccountService } from '@ghostfolio/api/app/account/account.service';
import { CacheModule } from '@ghostfolio/api/app/cache/cache.module';
import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module';
-import { UserModule } from '@ghostfolio/api/app/user/user.module';
+import { RedactValuesInResponseModule } from '@ghostfolio/api/interceptors/redact-values-in-response/redact-values-in-response.module';
+import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
+import { TransformDataSourceInResponseModule } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.module';
import { ApiModule } from '@ghostfolio/api/services/api/api.module';
-import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering/data-gathering.module';
import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.module';
@@ -23,15 +24,16 @@ import { OrderService } from './order.service';
imports: [
ApiModule,
CacheModule,
- ConfigurationModule,
DataGatheringModule,
DataProviderModule,
ExchangeRateDataModule,
ImpersonationModule,
PrismaModule,
+ RedactValuesInResponseModule,
RedisCacheModule,
SymbolProfileModule,
- UserModule
+ TransformDataSourceInRequestModule,
+ TransformDataSourceInResponseModule
],
providers: [AccountBalanceService, AccountService, OrderService]
})
diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts
index 66419c578..5cdaa1641 100644
--- a/apps/api/src/app/portfolio/portfolio.controller.ts
+++ b/apps/api/src/app/portfolio/portfolio.controller.ts
@@ -7,9 +7,9 @@ import {
nullifyValuesInObject
} from '@ghostfolio/api/helper/object.helper';
import { getInterval } from '@ghostfolio/api/helper/portfolio.helper';
-import { RedactValuesInResponseInterceptor } from '@ghostfolio/api/interceptors/redact-values-in-response.interceptor';
-import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request.interceptor';
-import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response.interceptor';
+import { RedactValuesInResponseInterceptor } from '@ghostfolio/api/interceptors/redact-values-in-response/redact-values-in-response.interceptor';
+import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
+import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor';
import { ApiService } from '@ghostfolio/api/services/api/api.service';
import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
@@ -27,6 +27,10 @@ import {
PortfolioPublicDetails,
PortfolioReport
} from '@ghostfolio/common/interfaces';
+import {
+ hasReadRestrictedAccessPermission,
+ isRestrictedView
+} from '@ghostfolio/common/permissions';
import type {
DateRange,
GroupBy,
@@ -84,11 +88,6 @@ export class PortfolioController {
let hasDetails = true;
let hasError = false;
- const hasReadRestrictedAccessPermission =
- this.userService.hasReadRestrictedAccessPermission({
- impersonationId,
- user: this.request.user
- });
if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) {
hasDetails = this.request.user.subscription.type === 'Premium';
@@ -117,8 +116,11 @@ export class PortfolioController {
let portfolioSummary = summary;
if (
- hasReadRestrictedAccessPermission ||
- this.userService.isRestrictedView(this.request.user)
+ hasReadRestrictedAccessPermission({
+ impersonationId,
+ user: this.request.user
+ }) ||
+ isRestrictedView(this.request.user)
) {
const totalInvestment = Object.values(holdings)
.map(({ investment }) => {
@@ -158,8 +160,11 @@ export class PortfolioController {
if (
hasDetails === false ||
- hasReadRestrictedAccessPermission ||
- this.userService.isRestrictedView(this.request.user)
+ hasReadRestrictedAccessPermission({
+ impersonationId,
+ user: this.request.user
+ }) ||
+ isRestrictedView(this.request.user)
) {
portfolioSummary = nullifyValuesInObject(summary, [
'cash',
@@ -226,12 +231,6 @@ export class PortfolioController {
@Query('range') dateRange: DateRange = 'max',
@Query('tags') filterByTags?: string
): Promise {
- const hasReadRestrictedAccessPermission =
- this.userService.hasReadRestrictedAccessPermission({
- impersonationId,
- user: this.request.user
- });
-
const filters = this.apiService.buildFiltersFromQueryParams({
filterByAccounts,
filterByAssetClasses,
@@ -259,8 +258,11 @@ export class PortfolioController {
});
if (
- hasReadRestrictedAccessPermission ||
- this.userService.isRestrictedView(this.request.user)
+ hasReadRestrictedAccessPermission({
+ impersonationId,
+ user: this.request.user
+ }) ||
+ isRestrictedView(this.request.user)
) {
const maxDividend = dividends.reduce(
(investment, item) => Math.max(investment, item.investment),
@@ -326,12 +328,6 @@ export class PortfolioController {
@Query('range') dateRange: DateRange = 'max',
@Query('tags') filterByTags?: string
): Promise {
- const hasReadRestrictedAccessPermission =
- this.userService.hasReadRestrictedAccessPermission({
- impersonationId,
- user: this.request.user
- });
-
const filters = this.apiService.buildFiltersFromQueryParams({
filterByAccounts,
filterByAssetClasses,
@@ -347,8 +343,11 @@ export class PortfolioController {
});
if (
- hasReadRestrictedAccessPermission ||
- this.userService.isRestrictedView(this.request.user)
+ hasReadRestrictedAccessPermission({
+ impersonationId,
+ user: this.request.user
+ }) ||
+ isRestrictedView(this.request.user)
) {
const maxInvestment = investments.reduce(
(investment, item) => Math.max(investment, item.investment),
@@ -397,12 +396,6 @@ export class PortfolioController {
): Promise {
const withExcludedAccounts = withExcludedAccountsParam === 'true';
- const hasReadRestrictedAccessPermission =
- this.userService.hasReadRestrictedAccessPermission({
- impersonationId,
- user: this.request.user
- });
-
const filters = this.apiService.buildFiltersFromQueryParams({
filterByAccounts,
filterByAssetClasses,
@@ -418,9 +411,12 @@ export class PortfolioController {
});
if (
- hasReadRestrictedAccessPermission ||
- this.request.user.Settings.settings.viewMode === 'ZEN' ||
- this.userService.isRestrictedView(this.request.user)
+ hasReadRestrictedAccessPermission({
+ impersonationId,
+ user: this.request.user
+ }) ||
+ isRestrictedView(this.request.user) ||
+ this.request.user.Settings.settings.viewMode === 'ZEN'
) {
performanceInformation.chart = performanceInformation.chart.map(
({
diff --git a/apps/api/src/app/portfolio/portfolio.module.ts b/apps/api/src/app/portfolio/portfolio.module.ts
index 5659f2a7e..7f1f375b1 100644
--- a/apps/api/src/app/portfolio/portfolio.module.ts
+++ b/apps/api/src/app/portfolio/portfolio.module.ts
@@ -4,6 +4,9 @@ import { AccountService } from '@ghostfolio/api/app/account/account.service';
import { OrderModule } from '@ghostfolio/api/app/order/order.module';
import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module';
import { UserModule } from '@ghostfolio/api/app/user/user.module';
+import { RedactValuesInResponseModule } from '@ghostfolio/api/interceptors/redact-values-in-response/redact-values-in-response.module';
+import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
+import { TransformDataSourceInResponseModule } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.module';
import { ApiModule } from '@ghostfolio/api/services/api/api.module';
import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering/data-gathering.module';
@@ -36,8 +39,11 @@ import { RulesService } from './rules.service';
MarketDataModule,
OrderModule,
PrismaModule,
+ RedactValuesInResponseModule,
RedisCacheModule,
SymbolProfileModule,
+ TransformDataSourceInRequestModule,
+ TransformDataSourceInResponseModule,
UserModule
],
providers: [
diff --git a/apps/api/src/app/sitemap/sitemap.module.ts b/apps/api/src/app/sitemap/sitemap.module.ts
index ba60d43f6..e04e3f6b3 100644
--- a/apps/api/src/app/sitemap/sitemap.module.ts
+++ b/apps/api/src/app/sitemap/sitemap.module.ts
@@ -1,25 +1,8 @@
-import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module';
-import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
-import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering/data-gathering.module';
-import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
-import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.module';
-import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module';
-import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/symbol-profile.module';
-
import { Module } from '@nestjs/common';
import { SitemapController } from './sitemap.controller';
@Module({
- controllers: [SitemapController],
- imports: [
- ConfigurationModule,
- DataGatheringModule,
- DataProviderModule,
- ExchangeRateDataModule,
- PrismaModule,
- RedisCacheModule,
- SymbolProfileModule
- ]
+ controllers: [SitemapController]
})
export class SitemapModule {}
diff --git a/apps/api/src/app/symbol/symbol.controller.ts b/apps/api/src/app/symbol/symbol.controller.ts
index 17e0056d6..b3b9dc109 100644
--- a/apps/api/src/app/symbol/symbol.controller.ts
+++ b/apps/api/src/app/symbol/symbol.controller.ts
@@ -1,6 +1,6 @@
import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard';
-import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request.interceptor';
-import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response.interceptor';
+import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
+import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor';
import { IDataProviderHistoricalResponse } from '@ghostfolio/api/services/interfaces/interfaces';
import type { RequestWithUser } from '@ghostfolio/common/types';
diff --git a/apps/api/src/app/symbol/symbol.module.ts b/apps/api/src/app/symbol/symbol.module.ts
index 3b5379a62..223a0a832 100644
--- a/apps/api/src/app/symbol/symbol.module.ts
+++ b/apps/api/src/app/symbol/symbol.module.ts
@@ -1,4 +1,5 @@
-import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
+import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
+import { TransformDataSourceInResponseModule } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.module';
import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
import { MarketDataModule } from '@ghostfolio/api/services/market-data/market-data.module';
import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module';
@@ -12,10 +13,11 @@ import { SymbolService } from './symbol.service';
controllers: [SymbolController],
exports: [SymbolService],
imports: [
- ConfigurationModule,
DataProviderModule,
MarketDataModule,
- PrismaModule
+ PrismaModule,
+ TransformDataSourceInRequestModule,
+ TransformDataSourceInResponseModule
],
providers: [SymbolService]
})
diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts
index 3a370d88a..0ac586671 100644
--- a/apps/api/src/app/user/user.service.ts
+++ b/apps/api/src/app/user/user.service.ts
@@ -121,28 +121,6 @@ export class UserService {
return usersWithAdminRole.length > 0;
}
- public hasReadRestrictedAccessPermission({
- impersonationId,
- user
- }: {
- impersonationId: string;
- user: UserWithSettings;
- }) {
- if (!impersonationId) {
- return false;
- }
-
- const access = user.Access?.find(({ id }) => {
- return id === impersonationId;
- });
-
- return access?.permissions?.includes('READ_RESTRICTED') ?? true;
- }
-
- public isRestrictedView(aUser: UserWithSettings) {
- return aUser.Settings.settings.isRestrictedView ?? false;
- }
-
public async user(
userWhereUniqueInput: Prisma.UserWhereUniqueInput
): Promise {
diff --git a/apps/api/src/interceptors/redact-values-in-response.interceptor.ts b/apps/api/src/interceptors/redact-values-in-response/redact-values-in-response.interceptor.ts
similarity index 85%
rename from apps/api/src/interceptors/redact-values-in-response.interceptor.ts
rename to apps/api/src/interceptors/redact-values-in-response/redact-values-in-response.interceptor.ts
index 17d4e3c17..cae4f22ed 100644
--- a/apps/api/src/interceptors/redact-values-in-response.interceptor.ts
+++ b/apps/api/src/interceptors/redact-values-in-response/redact-values-in-response.interceptor.ts
@@ -1,6 +1,9 @@
-import { UserService } from '@ghostfolio/api/app/user/user.service';
import { redactAttributes } from '@ghostfolio/api/helper/object.helper';
import { HEADER_KEY_IMPERSONATION } from '@ghostfolio/common/config';
+import {
+ hasReadRestrictedAccessPermission,
+ isRestrictedView
+} from '@ghostfolio/common/permissions';
import { UserWithSettings } from '@ghostfolio/common/types';
import {
@@ -16,7 +19,7 @@ import { map } from 'rxjs/operators';
export class RedactValuesInResponseInterceptor
implements NestInterceptor
{
- public constructor(private userService: UserService) {}
+ public constructor() {}
public intercept(
context: ExecutionContext,
@@ -29,15 +32,13 @@ export class RedactValuesInResponseInterceptor
const impersonationId =
headers?.[HEADER_KEY_IMPERSONATION.toLowerCase()];
- const hasReadRestrictedPermission =
- this.userService.hasReadRestrictedAccessPermission({
- impersonationId,
- user
- });
if (
- hasReadRestrictedPermission ||
- this.userService.isRestrictedView(user)
+ hasReadRestrictedAccessPermission({
+ impersonationId,
+ user
+ }) ||
+ isRestrictedView(user)
) {
data = redactAttributes({
object: data,
diff --git a/apps/api/src/interceptors/redact-values-in-response/redact-values-in-response.module.ts b/apps/api/src/interceptors/redact-values-in-response/redact-values-in-response.module.ts
new file mode 100644
index 000000000..90cf254b3
--- /dev/null
+++ b/apps/api/src/interceptors/redact-values-in-response/redact-values-in-response.module.ts
@@ -0,0 +1,4 @@
+import { Module } from '@nestjs/common';
+
+@Module({})
+export class RedactValuesInResponseModule {}
diff --git a/apps/api/src/interceptors/transform-data-source-in-request.interceptor.ts b/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor.ts
similarity index 100%
rename from apps/api/src/interceptors/transform-data-source-in-request.interceptor.ts
rename to apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor.ts
diff --git a/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.module.ts b/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.module.ts
new file mode 100644
index 000000000..4a7d23803
--- /dev/null
+++ b/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.module.ts
@@ -0,0 +1,11 @@
+import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
+import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
+
+import { Module } from '@nestjs/common';
+
+@Module({
+ exports: [ConfigurationService],
+ imports: [ConfigurationModule],
+ providers: [ConfigurationService]
+})
+export class TransformDataSourceInRequestModule {}
diff --git a/apps/api/src/interceptors/transform-data-source-in-response.interceptor.ts b/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor.ts
similarity index 100%
rename from apps/api/src/interceptors/transform-data-source-in-response.interceptor.ts
rename to apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor.ts
diff --git a/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.module.ts b/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.module.ts
new file mode 100644
index 000000000..fadf0bd80
--- /dev/null
+++ b/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.module.ts
@@ -0,0 +1,11 @@
+import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
+import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
+
+import { Module } from '@nestjs/common';
+
+@Module({
+ exports: [ConfigurationService],
+ imports: [ConfigurationModule],
+ providers: [ConfigurationService]
+})
+export class TransformDataSourceInResponseModule {}
diff --git a/libs/common/src/lib/permissions.ts b/libs/common/src/lib/permissions.ts
index 890cb8b63..7c8b8ccbe 100644
--- a/libs/common/src/lib/permissions.ts
+++ b/libs/common/src/lib/permissions.ts
@@ -125,6 +125,28 @@ export function hasPermission(
return aPermissions.includes(aPermission);
}
-export function hasRole(aUser: UserWithSettings, aRole: Role): boolean {
+export function hasReadRestrictedAccessPermission({
+ impersonationId,
+ user
+}: {
+ impersonationId: string;
+ user: UserWithSettings;
+}) {
+ if (!impersonationId) {
+ return false;
+ }
+
+ const access = user.Access?.find(({ id }) => {
+ return id === impersonationId;
+ });
+
+ return access?.permissions?.includes('READ_RESTRICTED') ?? true;
+}
+
+export function hasRole(aUser: UserWithSettings, aRole: Role) {
return aUser?.role === aRole;
}
+
+export function isRestrictedView(aUser: UserWithSettings) {
+ return aUser.Settings.settings.isRestrictedView ?? false;
+}
From 60ef46accf1d400ac5f64a62e0a69c094364aa14 Mon Sep 17 00:00:00 2001
From: Eduardo Marinho <87383586+SirZemar@users.noreply.github.com>
Date: Sat, 1 Jun 2024 09:53:02 +0100
Subject: [PATCH 19/92] Bugfix/fix state handling of currency selector
component (#2795) (#3429)
* Fix state handling of currency selector component
* Update changelog
---
CHANGELOG.md | 1 +
.../asset-profile-dialog.component.ts | 15 ++-----
...eate-or-update-account-dialog.component.ts | 10 ++---
.../src/lib/interfaces/currency.interface.ts | 4 --
libs/common/src/lib/interfaces/index.ts | 2 -
.../currency-selector.component.html | 7 ++-
.../currency-selector.component.ts | 43 ++++++-------------
7 files changed, 25 insertions(+), 57 deletions(-)
delete mode 100644 libs/common/src/lib/interfaces/currency.interface.ts
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9ad4dd2fc..855ecaa05 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Fixed an issue with the initial annual interest rate in the _FIRE_ calculator
+- Fixed the state handling in the currency selector
## 2.83.0 - 2024-05-30
diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
index 5016a4205..bf8de8ca9 100644
--- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
@@ -8,7 +8,6 @@ import { ghostfolioScraperApiSymbolPrefix } from '@ghostfolio/common/config';
import { DATE_FORMAT } from '@ghostfolio/common/helper';
import {
AdminMarketDataDetails,
- Currency,
UniqueAsset
} from '@ghostfolio/common/interfaces';
import { translate } from '@ghostfolio/ui/i18n';
@@ -73,7 +72,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
public countries: {
[code: string]: { name: string; value: number };
};
- public currencies: Currency[] = [];
+ public currencies: string[] = [];
public ghostfolioScraperApiSymbolPrefix = ghostfolioScraperApiSymbolPrefix;
public isBenchmark = false;
public marketDataDetails: MarketData[] = [];
@@ -102,10 +101,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
const { benchmarks, currencies } = this.dataService.fetchInfo();
this.benchmarks = benchmarks;
- this.currencies = currencies.map((currency) => ({
- label: currency,
- value: currency
- }));
+ this.currencies = currencies;
this.initialize();
}
@@ -293,9 +289,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
assetClass: this.assetProfileForm.get('assetClass').value,
assetSubClass: this.assetProfileForm.get('assetSubClass').value,
comment: this.assetProfileForm.get('comment').value || null,
- currency: ((
- (this.assetProfileForm.get('currency').value)
- ))?.value,
+ currency: this.assetProfileForm.get('currency').value,
name: this.assetProfileForm.get('name').value,
url: this.assetProfileForm.get('url').value || null
};
@@ -343,8 +337,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
' ' +
price +
' ' +
- ((this.assetProfileForm.get('currency').value))
- ?.value
+ this.assetProfileForm.get('currency').value
);
});
}
diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts
index 91e0769fc..da2ea725a 100644
--- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts
+++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts
@@ -2,7 +2,6 @@ import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto
import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto';
import { DataService } from '@ghostfolio/client/services/data.service';
import { validateObjectForForm } from '@ghostfolio/client/util/form.util';
-import { Currency } from '@ghostfolio/common/interfaces';
import {
ChangeDetectionStrategy,
@@ -33,7 +32,7 @@ import { CreateOrUpdateAccountDialogParams } from './interfaces/interfaces';
})
export class CreateOrUpdateAccountDialog implements OnDestroy {
public accountForm: FormGroup;
- public currencies: Currency[] = [];
+ public currencies: string[] = [];
public filteredPlatforms: Observable;
public platforms: Platform[];
@@ -49,10 +48,7 @@ export class CreateOrUpdateAccountDialog implements OnDestroy {
public ngOnInit() {
const { currencies, platforms } = this.dataService.fetchInfo();
- this.currencies = currencies.map((currency) => ({
- label: currency,
- value: currency
- }));
+ this.currencies = currencies;
this.platforms = platforms;
this.accountForm = this.formBuilder.group({
@@ -107,7 +103,7 @@ export class CreateOrUpdateAccountDialog implements OnDestroy {
const account: CreateAccountDto | UpdateAccountDto = {
balance: this.accountForm.get('balance').value,
comment: this.accountForm.get('comment').value || null,
- currency: this.accountForm.get('currency').value?.value,
+ currency: this.accountForm.get('currency').value,
id: this.accountForm.get('accountId').value,
isExcluded: this.accountForm.get('isExcluded').value,
name: this.accountForm.get('name').value,
diff --git a/libs/common/src/lib/interfaces/currency.interface.ts b/libs/common/src/lib/interfaces/currency.interface.ts
deleted file mode 100644
index 619144c0f..000000000
--- a/libs/common/src/lib/interfaces/currency.interface.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export interface Currency {
- label: string;
- value: string;
-}
diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts
index c2c9ce619..1f6bf99eb 100644
--- a/libs/common/src/lib/interfaces/index.ts
+++ b/libs/common/src/lib/interfaces/index.ts
@@ -11,7 +11,6 @@ import type { BenchmarkMarketDataDetails } from './benchmark-market-data-details
import type { BenchmarkProperty } from './benchmark-property.interface';
import type { Benchmark } from './benchmark.interface';
import type { Coupon } from './coupon.interface';
-import type { Currency } from './currency.interface';
import type { DataProviderInfo } from './data-provider-info.interface';
import type { EnhancedSymbolProfile } from './enhanced-symbol-profile.interface';
import type { Export } from './export.interface';
@@ -66,7 +65,6 @@ export {
BenchmarkProperty,
BenchmarkResponse,
Coupon,
- Currency,
DataProviderInfo,
EnhancedSymbolProfile,
Export,
diff --git a/libs/ui/src/lib/currency-selector/currency-selector.component.html b/libs/ui/src/lib/currency-selector/currency-selector.component.html
index 76fe8fef0..e07101f9a 100644
--- a/libs/ui/src/lib/currency-selector/currency-selector.component.html
+++ b/libs/ui/src/lib/currency-selector/currency-selector.component.html
@@ -8,12 +8,11 @@
- @for (currencyItem of filteredCurrencies; track currencyItem) {
-
- {{ currencyItem.label }}
+ @for (currency of filteredCurrencies; track currency) {
+
+ {{ currency }}
}
diff --git a/libs/ui/src/lib/currency-selector/currency-selector.component.ts b/libs/ui/src/lib/currency-selector/currency-selector.component.ts
index 046af1cf8..c01df950f 100644
--- a/libs/ui/src/lib/currency-selector/currency-selector.component.ts
+++ b/libs/ui/src/lib/currency-selector/currency-selector.component.ts
@@ -1,4 +1,3 @@
-import { Currency } from '@ghostfolio/common/interfaces';
import { AbstractMatFormField } from '@ghostfolio/ui/shared/abstract-mat-form-field';
import { FocusMonitor } from '@angular/cdk/a11y';
@@ -59,10 +58,10 @@ import { map, startWith, takeUntil } from 'rxjs/operators';
templateUrl: 'currency-selector.component.html'
})
export class GfCurrencySelectorComponent
- extends AbstractMatFormField
+ extends AbstractMatFormField
implements OnInit, OnDestroy
{
- @Input() private currencies: Currency[] = [];
+ @Input() private currencies: string[] = [];
@Input() private formControlName: string;
@ViewChild(MatInput) private input: MatInput;
@@ -71,7 +70,7 @@ export class GfCurrencySelectorComponent
public currencyAutocomplete: MatAutocomplete;
public control = new FormControl();
- public filteredCurrencies: Currency[] = [];
+ public filteredCurrencies: string[] = [];
private unsubscribeSubject = new Subject();
@@ -98,7 +97,7 @@ export class GfCurrencySelectorComponent
const control = formGroup.get(this.formControlName);
if (control) {
- this.value = this.currencies.find(({ value }) => {
+ this.value = this.currencies.find((value) => {
return value === control.value;
});
}
@@ -107,8 +106,8 @@ export class GfCurrencySelectorComponent
this.control.valueChanges
.pipe(takeUntil(this.unsubscribeSubject))
.subscribe(() => {
- if (super.value?.value) {
- super.value.value = null;
+ if (super.value) {
+ super.value = null;
}
});
@@ -125,10 +124,6 @@ export class GfCurrencySelectorComponent
});
}
- public displayFn(currency: Currency) {
- return currency?.label ?? '';
- }
-
public get empty() {
return this.input?.empty;
}
@@ -146,17 +141,12 @@ export class GfCurrencySelectorComponent
}
public onUpdateCurrency(event: MatAutocompleteSelectedEvent) {
- super.value = {
- label: event.option.value.label,
- value: event.option.value.value
- } as Currency;
+ super.value = event.option.value;
}
- public set value(value: Currency) {
- const newValue =
- typeof value === 'object' && value !== null ? { ...value } : value;
- this.control.setValue(newValue);
- super.value = newValue;
+ public set value(value: string) {
+ this.control.setValue(value);
+ super.value = value;
}
public ngOnDestroy() {
@@ -166,21 +156,16 @@ export class GfCurrencySelectorComponent
this.unsubscribeSubject.complete();
}
- private filter(value: Currency | string) {
- const filterValue =
- typeof value === 'string'
- ? value?.toLowerCase()
- : value?.value.toLowerCase();
+ private filter(value: string) {
+ const filterValue = value?.toLowerCase();
return this.currencies.filter((currency) => {
- return currency.value.toLowerCase().startsWith(filterValue);
+ return currency.toLowerCase().startsWith(filterValue);
});
}
private validateRequired() {
- const requiredCheck = super.required
- ? !super.value?.label || !super.value?.value
- : false;
+ const requiredCheck = super.required ? !super.value : false;
if (requiredCheck) {
this.ngControl.control.setErrors({ invalidData: true });
From c009f8c12f4052b8f0ad986d64129276b1583e68 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sat, 1 Jun 2024 10:55:42 +0200
Subject: [PATCH 20/92] Feature/add data provider info to asset profile details
dialog (#3434)
* Add data provider info to asset profile details dialog
* Update changelog
---
CHANGELOG.md | 4 ++++
apps/api/src/app/admin/admin.service.ts | 6 ++++++
.../alpha-vantage/alpha-vantage.service.ts | 4 +++-
.../services/data-provider/data-provider.service.ts | 12 ++++++++----
.../eod-historical-data.service.ts | 4 +++-
.../google-sheets/google-sheets.service.ts | 4 +++-
.../data-provider/rapid-api/rapid-api.service.ts | 4 +++-
.../yahoo-finance/yahoo-finance.service.ts | 4 +++-
.../symbol-profile/symbol-profile.service.ts | 10 +++++++---
.../asset-profile-dialog/asset-profile-dialog.html | 11 +++++++++++
.../interfaces/enhanced-symbol-profile.interface.ts | 2 ++
11 files changed, 53 insertions(+), 12 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 855ecaa05..274071d21 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
+### Added
+
+- Added the data provider information to the asset profile details dialog of the admin control
+
### Fixed
- Fixed an issue with the initial annual interest rate in the _FIRE_ calculator
diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts
index 7df4498d7..9e4b6a6c6 100644
--- a/apps/api/src/app/admin/admin.service.ts
+++ b/apps/api/src/app/admin/admin.service.ts
@@ -313,6 +313,12 @@ export class AdminService {
})
]);
+ if (assetProfile) {
+ assetProfile.dataProviderInfo = this.dataProviderService
+ .getDataProvider(assetProfile.dataSource)
+ .getDataProviderInfo();
+ }
+
return {
marketData,
assetProfile: assetProfile ?? {
diff --git a/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts b/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts
index 08dc48e57..4e93bc757 100644
--- a/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts
+++ b/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts
@@ -50,7 +50,9 @@ export class AlphaVantageService implements DataProviderInterface {
public getDataProviderInfo(): DataProviderInfo {
return {
- isPremium: false
+ isPremium: false,
+ name: 'Alpha Vantage',
+ url: 'https://www.alphavantage.co'
};
}
diff --git a/apps/api/src/services/data-provider/data-provider.service.ts b/apps/api/src/services/data-provider/data-provider.service.ts
index 26fc171b5..34067fa6f 100644
--- a/apps/api/src/services/data-provider/data-provider.service.ts
+++ b/apps/api/src/services/data-provider/data-provider.service.ts
@@ -598,10 +598,14 @@ export class DataProviderService {
return name1?.toLowerCase().localeCompare(name2?.toLowerCase());
})
.map((lookupItem) => {
- if (
- !this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION') ||
- user.subscription.type === 'Premium'
- ) {
+ if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) {
+ if (user.subscription.type === 'Premium') {
+ lookupItem.dataProviderInfo.isPremium = false;
+ }
+
+ lookupItem.dataProviderInfo.name = undefined;
+ lookupItem.dataProviderInfo.url = undefined;
+ } else {
lookupItem.dataProviderInfo.isPremium = false;
}
diff --git a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts
index 1b6abd585..e16986cbb 100644
--- a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts
+++ b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts
@@ -66,7 +66,9 @@ export class EodHistoricalDataService implements DataProviderInterface {
public getDataProviderInfo(): DataProviderInfo {
return {
- isPremium: true
+ isPremium: true,
+ name: 'EOD Historical Data',
+ url: 'https://eodhd.com'
};
}
diff --git a/apps/api/src/services/data-provider/google-sheets/google-sheets.service.ts b/apps/api/src/services/data-provider/google-sheets/google-sheets.service.ts
index 68e8bf732..c8ff87719 100644
--- a/apps/api/src/services/data-provider/google-sheets/google-sheets.service.ts
+++ b/apps/api/src/services/data-provider/google-sheets/google-sheets.service.ts
@@ -46,7 +46,9 @@ export class GoogleSheetsService implements DataProviderInterface {
public getDataProviderInfo(): DataProviderInfo {
return {
- isPremium: false
+ isPremium: false,
+ name: 'Google Sheets',
+ url: 'https://docs.google.com/spreadsheets'
};
}
diff --git a/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts b/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts
index e55fbd4e2..7e866552e 100644
--- a/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts
+++ b/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts
@@ -43,7 +43,9 @@ export class RapidApiService implements DataProviderInterface {
public getDataProviderInfo(): DataProviderInfo {
return {
- isPremium: false
+ isPremium: false,
+ name: 'Rapid API',
+ url: 'https://rapidapi.com'
};
}
diff --git a/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts b/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts
index c55da2597..e0d88f0c6 100644
--- a/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts
+++ b/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts
@@ -43,7 +43,9 @@ export class YahooFinanceService implements DataProviderInterface {
public getDataProviderInfo(): DataProviderInfo {
return {
- isPremium: false
+ isPremium: false,
+ name: 'Yahoo Finance',
+ url: 'https://finance.yahoo.com'
};
}
diff --git a/apps/api/src/services/symbol-profile/symbol-profile.service.ts b/apps/api/src/services/symbol-profile/symbol-profile.service.ts
index 915b2f716..01901d4f3 100644
--- a/apps/api/src/services/symbol-profile/symbol-profile.service.ts
+++ b/apps/api/src/services/symbol-profile/symbol-profile.service.ts
@@ -61,7 +61,9 @@ export class SymbolProfileService {
})
}
})
- .then((symbolProfiles) => this.getSymbols(symbolProfiles));
+ .then((symbolProfiles) => {
+ return this.enhanceSymbolProfiles(symbolProfiles);
+ });
}
public async getSymbolProfilesByIds(
@@ -83,7 +85,9 @@ export class SymbolProfileService {
}
}
})
- .then((symbolProfiles) => this.getSymbols(symbolProfiles));
+ .then((symbolProfiles) => {
+ return this.enhanceSymbolProfiles(symbolProfiles);
+ });
}
public updateSymbolProfile({
@@ -119,7 +123,7 @@ export class SymbolProfileService {
});
}
- private getSymbols(
+ private enhanceSymbolProfiles(
symbolProfiles: (SymbolProfile & {
_count: { Order: number };
Order?: {
diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
index 4f01a933e..487794f66 100644
--- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -115,11 +115,22 @@
>Symbol
+
+ Data Source
+
Currency
+
Date: Sat, 1 Jun 2024 11:08:36 +0200
Subject: [PATCH 21/92] Feature/setup cascading on delete for various relations
in database schema (#3445)
* Setup cascading on delete
* Update changelog
---
CHANGELOG.md | 2 +
.../migration.sql | 53 +++++++++++++++++++
prisma/schema.prisma | 18 +++----
3 files changed, 64 insertions(+), 9 deletions(-)
create mode 100644 prisma/migrations/20240601083002_added_cascade_on_delete_for_various_relations/migration.sql
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 274071d21..9a09ee3dd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,11 +10,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Added the data provider information to the asset profile details dialog of the admin control
+- Added the cascading on delete for various relations in the database schema
### Fixed
- Fixed an issue with the initial annual interest rate in the _FIRE_ calculator
- Fixed the state handling in the currency selector
+- Fixed the deletion of an asset profile with symbol profile overrides in the asset profile details dialog of the admin control
## 2.83.0 - 2024-05-30
diff --git a/prisma/migrations/20240601083002_added_cascade_on_delete_for_various_relations/migration.sql b/prisma/migrations/20240601083002_added_cascade_on_delete_for_various_relations/migration.sql
new file mode 100644
index 000000000..46b08f606
--- /dev/null
+++ b/prisma/migrations/20240601083002_added_cascade_on_delete_for_various_relations/migration.sql
@@ -0,0 +1,53 @@
+-- DropForeignKey
+ALTER TABLE "Access" DROP CONSTRAINT "Access_granteeUserId_fkey";
+
+-- DropForeignKey
+ALTER TABLE "Access" DROP CONSTRAINT "Access_userId_fkey";
+
+-- DropForeignKey
+ALTER TABLE "Account" DROP CONSTRAINT "Account_userId_fkey";
+
+-- DropForeignKey
+ALTER TABLE "Analytics" DROP CONSTRAINT "Analytics_userId_fkey";
+
+-- DropForeignKey
+ALTER TABLE "AuthDevice" DROP CONSTRAINT "AuthDevice_userId_fkey";
+
+-- DropForeignKey
+ALTER TABLE "Order" DROP CONSTRAINT "Order_userId_fkey";
+
+-- DropForeignKey
+ALTER TABLE "Settings" DROP CONSTRAINT "Settings_userId_fkey";
+
+-- DropForeignKey
+ALTER TABLE "Subscription" DROP CONSTRAINT "Subscription_userId_fkey";
+
+-- DropForeignKey
+ALTER TABLE "SymbolProfileOverrides" DROP CONSTRAINT "SymbolProfileOverrides_symbolProfileId_fkey";
+
+-- AddForeignKey
+ALTER TABLE "Access" ADD CONSTRAINT "Access_granteeUserId_fkey" FOREIGN KEY ("granteeUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "Access" ADD CONSTRAINT "Access_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "Account" ADD CONSTRAINT "Account_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "Analytics" ADD CONSTRAINT "Analytics_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "AuthDevice" ADD CONSTRAINT "AuthDevice_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "Order" ADD CONSTRAINT "Order_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "Settings" ADD CONSTRAINT "Settings_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "SymbolProfileOverrides" ADD CONSTRAINT "SymbolProfileOverrides_symbolProfileId_fkey" FOREIGN KEY ("symbolProfileId") REFERENCES "SymbolProfile"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "Subscription" ADD CONSTRAINT "Subscription_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
index 43052de11..6293cfc18 100644
--- a/prisma/schema.prisma
+++ b/prisma/schema.prisma
@@ -17,8 +17,8 @@ model Access {
permissions AccessPermission[] @default([READ_RESTRICTED])
updatedAt DateTime @updatedAt
userId String
- GranteeUser User? @relation("accessGet", fields: [granteeUserId], references: [id])
- User User @relation("accessGive", fields: [userId], references: [id])
+ GranteeUser User? @relation("accessGet", fields: [granteeUserId], onDelete: Cascade, references: [id])
+ User User @relation("accessGive", fields: [userId], onDelete: Cascade, references: [id])
@@index([alias])
@@index([granteeUserId])
@@ -38,7 +38,7 @@ model Account {
updatedAt DateTime @updatedAt
userId String
Platform Platform? @relation(fields: [platformId], references: [id])
- User User @relation(fields: [userId], references: [id])
+ User User @relation(fields: [userId], onDelete: Cascade, references: [id])
Order Order[]
@@id([id, userId])
@@ -69,7 +69,7 @@ model Analytics {
country String?
updatedAt DateTime @updatedAt
userId String @id
- User User @relation(fields: [userId], references: [id])
+ User User @relation(fields: [userId], onDelete: Cascade, references: [id])
@@index([updatedAt])
}
@@ -82,7 +82,7 @@ model AuthDevice {
id String @id @default(uuid())
updatedAt DateTime @updatedAt
userId String
- User User @relation(fields: [userId], references: [id])
+ User User @relation(fields: [userId], onDelete: Cascade, references: [id])
@@index([userId])
}
@@ -123,7 +123,7 @@ model Order {
userId String
Account Account? @relation(fields: [accountId, accountUserId], references: [id, userId])
SymbolProfile SymbolProfile @relation(fields: [symbolProfileId], references: [id])
- User User @relation(fields: [userId], references: [id])
+ User User @relation(fields: [userId], onDelete: Cascade, references: [id])
tags Tag[]
@@index([accountId])
@@ -150,7 +150,7 @@ model Settings {
settings Json?
updatedAt DateTime @updatedAt
userId String @id
- User User @relation(fields: [userId], references: [id])
+ User User @relation(fields: [userId], onDelete: Cascade, references: [id])
}
model SymbolProfile {
@@ -194,7 +194,7 @@ model SymbolProfileOverrides {
url String?
symbolProfileId String @id
updatedAt DateTime @updatedAt
- SymbolProfile SymbolProfile @relation(fields: [symbolProfileId], references: [id])
+ SymbolProfile SymbolProfile @relation(fields: [symbolProfileId], onDelete: Cascade, references: [id])
}
model Subscription {
@@ -204,7 +204,7 @@ model Subscription {
price Float?
updatedAt DateTime @updatedAt
userId String
- User User @relation(fields: [userId], references: [id])
+ User User @relation(fields: [userId], onDelete: Cascade, references: [id])
@@index([userId])
}
From 0e08d8830ec35fe632284b5071248823382f78a6 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sat, 1 Jun 2024 11:14:34 +0200
Subject: [PATCH 22/92] Handle reduce of empty array (#3446)
---
.../services/exchange-rate-data/exchange-rate-data.service.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts b/apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts
index 683002a10..29d199ed7 100644
--- a/apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts
+++ b/apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts
@@ -78,7 +78,7 @@ export class ExchangeRateDataService {
);
const lastDateString = dateStrings.reduce((a, b) => {
return a > b ? a : b;
- });
+ }, undefined);
let previousExchangeRate =
exchangeRatesByCurrency[`${currency}${targetCurrency}`]?.[
From dfb3365efb342cfa1a62465c4193ea5094b637f8 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sat, 1 Jun 2024 11:16:13 +0200
Subject: [PATCH 23/92] Release 2.84.0 (#3447)
---
CHANGELOG.md | 2 +-
package.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9a09ee3dd..3d9423323 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## Unreleased
+## 2.84.0 - 2024-06-01
### Added
diff --git a/package.json b/package.json
index bab74e542..4a191658d 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ghostfolio",
- "version": "2.83.0",
+ "version": "2.84.0",
"homepage": "https://ghostfol.io",
"license": "AGPL-3.0",
"repository": "https://github.com/ghostfolio/ghostfolio",
From 98a9523eeeaa71fdf9e815b71d2b8063f65e8364 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sun, 2 Jun 2024 10:20:09 +0200
Subject: [PATCH 24/92] Feature/extend personal finance tools (#3448)
---
apps/api/src/assets/sitemap.xml | 48 +++++++++++++++++++
.../personal-finance-tools/products.ts | 35 +++++++++++++-
.../portfolio-visualizer-page.component.ts | 32 +++++++++++++
.../products/stock-events-page.component.ts | 32 +++++++++++++
.../products/wallmine-page.component.ts | 32 +++++++++++++
5 files changed, 178 insertions(+), 1 deletion(-)
create mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts
create mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts
create mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts
diff --git a/apps/api/src/assets/sitemap.xml b/apps/api/src/assets/sitemap.xml
index e527df8d0..f02c80fc7 100644
--- a/apps/api/src/assets/sitemap.xml
+++ b/apps/api/src/assets/sitemap.xml
@@ -182,6 +182,10 @@
https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-portfolio-dividend-tracker
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-portfolio-visualizer
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-portseido
${currentDate}T00:00:00+00:00
@@ -210,6 +214,10 @@
https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-snowball-analytics
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-stock-events
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-stockle
${currentDate}T00:00:00+00:00
@@ -234,6 +242,10 @@
https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-vyzer
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-wallmine
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-wealthfolio
${currentDate}T00:00:00+00:00
@@ -536,6 +548,10 @@
https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-portfolio-dividend-tracker
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-portfolio-visualizer
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-portseido
${currentDate}T00:00:00+00:00
@@ -564,6 +580,10 @@
https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-snowball-analytics
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-stock-events
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-stockle
${currentDate}T00:00:00+00:00
@@ -588,6 +608,10 @@
https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-vyzer
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-wallmine
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-wealthfolio
${currentDate}T00:00:00+00:00
@@ -902,6 +926,10 @@
https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-portfolio-dividend-tracker
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-portfolio-visualizer
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-portseido
${currentDate}T00:00:00+00:00
@@ -930,6 +958,10 @@
https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-snowball-analytics
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-stock-events
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-stockle
${currentDate}T00:00:00+00:00
@@ -954,6 +986,10 @@
https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-vyzer
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-wallmine
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-wealthfolio
${currentDate}T00:00:00+00:00
@@ -1114,6 +1150,10 @@
https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-portfolio-dividend-tracker
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-portfolio-visualizer
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-portseido
${currentDate}T00:00:00+00:00
@@ -1142,6 +1182,10 @@
https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-snowball-analytics
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-stock-events
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-stockle
${currentDate}T00:00:00+00:00
@@ -1166,6 +1210,10 @@
https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-vyzer
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-wallmine
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-wealthfolio
${currentDate}T00:00:00+00:00
diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products.ts
index d089193f0..c681ac93c 100644
--- a/apps/client/src/app/pages/resources/personal-finance-tools/products.ts
+++ b/apps/client/src/app/pages/resources/personal-finance-tools/products.ts
@@ -32,6 +32,7 @@ import { MonsePageComponent } from './products/monse-page.component';
import { ParqetPageComponent } from './products/parqet-page.component';
import { PlannixPageComponent } from './products/plannix-page.component';
import { PortfolioDividendTrackerPageComponent } from './products/portfolio-dividend-tracker-page.component';
+import { PortfolioVisualizerPageComponent } from './products/portfolio-visualizer-page.component';
import { PortseidoPageComponent } from './products/portseido-page.component';
import { ProjectionLabPageComponent } from './products/projectionlab-page.component';
import { RocketMoneyPageComponent } from './products/rocket-money-page.component';
@@ -39,12 +40,14 @@ import { SeekingAlphaPageComponent } from './products/seeking-alpha-page.compone
import { SharesightPageComponent } from './products/sharesight-page.component';
import { SimplePortfolioPageComponent } from './products/simple-portfolio-page.component';
import { SnowballAnalyticsPageComponent } from './products/snowball-analytics-page.component';
+import { StockEventsPageComponent } from './products/stock-events-page.component';
import { StocklePageComponent } from './products/stockle-page.component';
import { StockMarketEyePageComponent } from './products/stockmarketeye-page.component';
import { SumioPageComponent } from './products/sumio-page.component';
import { TillerPageComponent } from './products/tiller-page.component';
import { UtlunaPageComponent } from './products/utluna-page.component';
import { VyzerPageComponent } from './products/vyzer-page.component';
+import { WallminePageComponent } from './products/wallmine-page.component';
import { WealthfolioPageComponent } from './products/wealthfolio-page.component';
import { WealthicaPageComponent } from './products/wealthica-page.component';
import { WhalPageComponent } from './products/whal-page.component';
@@ -67,7 +70,8 @@ export const products: Product[] = [
'Italiano',
'Nederlands',
'Português',
- 'Türkçe'
+ 'Türkçe',
+ '简体中文'
],
name: 'Ghostfolio',
origin: $localize`Switzerland`,
@@ -408,6 +412,16 @@ export const products: Product[] = [
pricingPerYear: '€60',
slogan: 'Manage all your portfolios'
},
+ {
+ component: PortfolioVisualizerPageComponent,
+ hasFreePlan: true,
+ hasSelfHostingAbility: false,
+ key: 'portfolio-visualizer',
+ languages: ['English'],
+ name: 'Portfolio Visualizer',
+ pricingPerYear: '$360',
+ slogan: 'Tools for Better Investors'
+ },
{
component: PortseidoPageComponent,
founded: 2021,
@@ -484,6 +498,15 @@ export const products: Product[] = [
pricingPerYear: '$80',
slogan: 'Simple and powerful portfolio tracker'
},
+ {
+ component: StockEventsPageComponent,
+ founded: 2019,
+ hasSelfHostingAbility: false,
+ key: 'stock-events',
+ name: 'Stock Events',
+ origin: $localize`Germany`,
+ slogan: 'Track all your Investments'
+ },
{
component: StocklePageComponent,
key: 'stockle',
@@ -543,6 +566,16 @@ export const products: Product[] = [
pricingPerYear: '$348',
slogan: 'Virtual Family Office for Smart Wealth Management'
},
+ {
+ component: WallminePageComponent,
+ hasSelfHostingAbility: false,
+ key: 'wallmine',
+ languages: ['English'],
+ name: 'wallmine',
+ origin: $localize`Czech Republic`,
+ pricingPerYear: '$600',
+ slogan: 'Make Smarter Investments'
+ },
{
component: WealthfolioPageComponent,
hasSelfHostingAbility: true,
diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts
new file mode 100644
index 000000000..4baeb4de9
--- /dev/null
+++ b/apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts
@@ -0,0 +1,32 @@
+import { CommonModule } from '@angular/common';
+import { Component } from '@angular/core';
+import { MatButtonModule } from '@angular/material/button';
+import { RouterModule } from '@angular/router';
+
+import { products } from '../products';
+import { BaseProductPageComponent } from './base-page.component';
+
+@Component({
+ host: { class: 'page' },
+ imports: [CommonModule, MatButtonModule, RouterModule],
+ selector: 'gf-portfolio-visualizer-page',
+ standalone: true,
+ styleUrls: ['../product-page-template.scss'],
+ templateUrl: '../product-page-template.html'
+})
+export class PortfolioVisualizerPageComponent extends BaseProductPageComponent {
+ public product1 = products.find(({ key }) => {
+ return key === 'ghostfolio';
+ });
+
+ public product2 = products.find(({ key }) => {
+ return key === 'portfolio-visualizer';
+ });
+
+ public routerLinkAbout = ['/' + $localize`about`];
+ public routerLinkFeatures = ['/' + $localize`features`];
+ public routerLinkResourcesPersonalFinanceTools = [
+ '/' + $localize`resources`,
+ 'personal-finance-tools'
+ ];
+}
diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts
new file mode 100644
index 000000000..ea8aa753b
--- /dev/null
+++ b/apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts
@@ -0,0 +1,32 @@
+import { CommonModule } from '@angular/common';
+import { Component } from '@angular/core';
+import { MatButtonModule } from '@angular/material/button';
+import { RouterModule } from '@angular/router';
+
+import { products } from '../products';
+import { BaseProductPageComponent } from './base-page.component';
+
+@Component({
+ host: { class: 'page' },
+ imports: [CommonModule, MatButtonModule, RouterModule],
+ selector: 'gf-stock-events-page',
+ standalone: true,
+ styleUrls: ['../product-page-template.scss'],
+ templateUrl: '../product-page-template.html'
+})
+export class StockEventsPageComponent extends BaseProductPageComponent {
+ public product1 = products.find(({ key }) => {
+ return key === 'ghostfolio';
+ });
+
+ public product2 = products.find(({ key }) => {
+ return key === 'stock-events';
+ });
+
+ public routerLinkAbout = ['/' + $localize`about`];
+ public routerLinkFeatures = ['/' + $localize`features`];
+ public routerLinkResourcesPersonalFinanceTools = [
+ '/' + $localize`resources`,
+ 'personal-finance-tools'
+ ];
+}
diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts
new file mode 100644
index 000000000..5c75c80fb
--- /dev/null
+++ b/apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts
@@ -0,0 +1,32 @@
+import { CommonModule } from '@angular/common';
+import { Component } from '@angular/core';
+import { MatButtonModule } from '@angular/material/button';
+import { RouterModule } from '@angular/router';
+
+import { products } from '../products';
+import { BaseProductPageComponent } from './base-page.component';
+
+@Component({
+ host: { class: 'page' },
+ imports: [CommonModule, MatButtonModule, RouterModule],
+ selector: 'gf-wallmine-page',
+ standalone: true,
+ styleUrls: ['../product-page-template.scss'],
+ templateUrl: '../product-page-template.html'
+})
+export class WallminePageComponent extends BaseProductPageComponent {
+ public product1 = products.find(({ key }) => {
+ return key === 'ghostfolio';
+ });
+
+ public product2 = products.find(({ key }) => {
+ return key === 'wallmine';
+ });
+
+ public routerLinkAbout = ['/' + $localize`about`];
+ public routerLinkFeatures = ['/' + $localize`features`];
+ public routerLinkResourcesPersonalFinanceTools = [
+ '/' + $localize`resources`,
+ 'personal-finance-tools'
+ ];
+}
From 6b0dadb8958f00de94c914a80bac15bb6fea119e Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sun, 2 Jun 2024 10:22:31 +0200
Subject: [PATCH 25/92] Feature/upgrade ng extract i18n merge to version 2.12.0
(#3449)
* Upgrade ng-extract-i18n-merge to version 2.12.0
* Update changelog
---
CHANGELOG.md | 6 ++
package.json | 2 +-
yarn.lock | 165 +++++++++++++++++++++++++++++++++------------------
3 files changed, 114 insertions(+), 59 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3d9423323..085c05386 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## Unreleased
+
+### Changed
+
+- Upgraded `ng-extract-i18n-merge` from version `2.10.0` to `2.12.0`
+
## 2.84.0 - 2024-06-01
### Added
diff --git a/package.json b/package.json
index 4a191658d..fe3716e28 100644
--- a/package.json
+++ b/package.json
@@ -117,7 +117,7 @@
"lodash": "4.17.21",
"marked": "9.1.6",
"ms": "3.0.0-canary.1",
- "ng-extract-i18n-merge": "2.10.0",
+ "ng-extract-i18n-merge": "2.12.0",
"ngx-device-detector": "5.0.1",
"ngx-markdown": "17.1.1",
"ngx-skeleton-loader": "7.0.0",
diff --git a/yarn.lock b/yarn.lock
index 12b0bdf30..7949f35cb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -36,12 +36,12 @@
"@angular-devkit/core" "17.3.8"
rxjs "7.8.1"
-"@angular-devkit/architect@^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0":
- version "0.1700.0"
- resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1700.0.tgz#419d59be6f8bc0068f8d495d7e28f4f47cfdb2ce"
- integrity sha512-whi7HvOjv1J3He9f+H8xNJWKyjAmWuWNl8gxNW6EZP/XLcrOu+/5QT4bPtXQBRIL/avZuc++5sNQS+kReaNCig==
+"@angular-devkit/architect@^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0 || ^0.1800.0":
+ version "0.1800.2"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1800.2.tgz#c4bc51e654558c7e7d27e0558b671d6731d46ccf"
+ integrity sha512-PX7lCTAqWe9C40+fie+DAc8vhpGA+JgZKWWrMHUTV/iZx8RXx2X4xGQsqYu36p4i3MSfQdbn+0xLWGmjScPVOQ==
dependencies:
- "@angular-devkit/core" "17.0.0"
+ "@angular-devkit/core" "18.0.2"
rxjs "7.8.1"
"@angular-devkit/build-angular@17.3.8":
@@ -145,18 +145,6 @@
rxjs "7.8.1"
source-map "0.7.4"
-"@angular-devkit/core@17.0.0", "@angular-devkit/core@^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0":
- version "17.0.0"
- resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-17.0.0.tgz#99cd048cca37cf4d0cb60a3b6871e19449a8006a"
- integrity sha512-QUu3LnEi4A8t733v2+I0sLtyBJx3Q7zdTAhaauCbxbFhDid0cbYm8hYsyG/njor1irTPxSJbn6UoetVkwUQZxg==
- dependencies:
- ajv "8.12.0"
- ajv-formats "2.1.1"
- jsonc-parser "3.2.0"
- picomatch "3.0.1"
- rxjs "7.8.1"
- source-map "0.7.4"
-
"@angular-devkit/core@17.3.3":
version "17.3.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-17.3.3.tgz#dce2f615355b2ef59c19927d90620670a6c890d0"
@@ -181,6 +169,18 @@
rxjs "7.8.1"
source-map "0.7.4"
+"@angular-devkit/core@18.0.2", "@angular-devkit/core@^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0":
+ version "18.0.2"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-18.0.2.tgz#6757af88d6d433b75392e124b50fa990466d02b2"
+ integrity sha512-QXcEdfmODc0rKblBerk30yw70fypIkFm6gQBLJgsshpwc+TMA+fuMLcPQebOTzKLtD2tNUkk/7SrWPQIGqeXaA==
+ dependencies:
+ ajv "8.13.0"
+ ajv-formats "3.0.1"
+ jsonc-parser "3.2.1"
+ picomatch "4.0.2"
+ rxjs "7.8.1"
+ source-map "0.7.4"
+
"@angular-devkit/schematics@16.0.1":
version "16.0.1"
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-16.0.1.tgz#d49387e9e41c9cce98b155da51b0e193333dd178"
@@ -203,17 +203,6 @@
ora "5.4.1"
rxjs "7.8.1"
-"@angular-devkit/schematics@17.0.0", "@angular-devkit/schematics@^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0":
- version "17.0.0"
- resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-17.0.0.tgz#bfcc09a1bd145ef978f92d660df89a11e69468d4"
- integrity sha512-LD7fjDORuBf139/oJ/gSwbIzQPfsm6Y67s1FD+XLi0QXaRt6dw4r7BMD08l1r//oPQofNgbEH4coGVO4NdCL/A==
- dependencies:
- "@angular-devkit/core" "17.0.0"
- jsonc-parser "3.2.0"
- magic-string "0.30.5"
- ora "5.4.1"
- rxjs "7.8.1"
-
"@angular-devkit/schematics@17.3.3":
version "17.3.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-17.3.3.tgz#223d8ffd27e6daaf63a3161dbe8c849860541bf1"
@@ -236,6 +225,17 @@
ora "5.4.1"
rxjs "7.8.1"
+"@angular-devkit/schematics@18.0.2", "@angular-devkit/schematics@^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0":
+ version "18.0.2"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-18.0.2.tgz#9795a79f4de2f622c388fe074153f8abb0ee22a4"
+ integrity sha512-G9yGcoB67sH0eRNWoiQWNn2KwiI7sDasVscYPGKf1yo7JRiXmzX/LpfKRPsZTl+Bs0FItnwDInsqgMisK89/6g==
+ dependencies:
+ "@angular-devkit/core" "18.0.2"
+ jsonc-parser "3.2.1"
+ magic-string "0.30.10"
+ ora "5.4.1"
+ rxjs "7.8.1"
+
"@angular-eslint/bundled-angular-compiler@17.5.1":
version "17.5.1"
resolved "https://registry.yarnpkg.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.5.1.tgz#21017c29486bf2f0f83501fb034dd0ff0a2c173e"
@@ -5870,14 +5870,14 @@
"@angular-devkit/schematics" "17.3.8"
jsonc-parser "3.2.1"
-"@schematics/angular@^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0":
- version "17.0.0"
- resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-17.0.0.tgz#63ddf8bfbb3b117fe7a355bd22b43d2c9ff7f0ee"
- integrity sha512-9jKU5x/WzaBsfSkUowK1X74FqtMXa6+A60XgW4ACO8i6fwKfPeS+tIrAieeYOX80/njBh7I5CvcpHmWA2SbcXQ==
+"@schematics/angular@^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0":
+ version "18.0.2"
+ resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-18.0.2.tgz#bc1f863b6f8b6d7a49fef8eccadda545f4fcf91d"
+ integrity sha512-qkJs1oxHtneJ6QxDKpxNyneXGDM9SKVj+Bgi8xUAU3FEzpsYmE/aW3MfwYHOZl0pDBO8c2raqLvlyl3dGP6/Gg==
dependencies:
- "@angular-devkit/core" "17.0.0"
- "@angular-devkit/schematics" "17.0.0"
- jsonc-parser "3.2.0"
+ "@angular-devkit/core" "18.0.2"
+ "@angular-devkit/schematics" "18.0.2"
+ jsonc-parser "3.2.1"
"@sigstore/bundle@^2.2.0":
version "2.2.0"
@@ -8203,6 +8203,13 @@ ajv-formats@2.1.1, ajv-formats@^2.1.1:
dependencies:
ajv "^8.0.0"
+ajv-formats@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578"
+ integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==
+ dependencies:
+ ajv "^8.0.0"
+
ajv-keywords@^3.5.2:
version "3.5.2"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
@@ -8235,6 +8242,16 @@ ajv@8.12.0, ajv@^8.0.0, ajv@^8.12.0, ajv@^8.9.0:
require-from-string "^2.0.2"
uri-js "^4.2.2"
+ajv@8.13.0:
+ version "8.13.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.13.0.tgz#a3939eaec9fb80d217ddf0c3376948c023f28c91"
+ integrity sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+ uri-js "^4.4.1"
+
ajv@^6.12.4, ajv@^6.12.5:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
@@ -14685,10 +14702,10 @@ magic-string@0.30.0:
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.13"
-magic-string@0.30.5, magic-string@^0.30.5, magic-string@~0.30.2:
- version "0.30.5"
- resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9"
- integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==
+magic-string@0.30.10:
+ version "0.30.10"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e"
+ integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.15"
@@ -14699,6 +14716,13 @@ magic-string@0.30.8:
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.15"
+magic-string@^0.30.5, magic-string@~0.30.2:
+ version "0.30.5"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9"
+ integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.4.15"
+
make-dir@^2.0.0, make-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
@@ -15384,16 +15408,16 @@ neo-async@^2.5.0, neo-async@^2.6.2:
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
-ng-extract-i18n-merge@2.10.0:
- version "2.10.0"
- resolved "https://registry.yarnpkg.com/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.10.0.tgz#20d2a4a1d21f058773242cbcc8406c4ef0f8fea0"
- integrity sha512-mWYRWAUc7kirS3kIQxUR0kGv7Yv5JnV0C05VNvGwHdyMM3vSdJ0WAE/o4RwzW1cRyzXuG9oNOz4gctTzQsTErw==
+ng-extract-i18n-merge@2.12.0:
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.12.0.tgz#857db1c035db8b1d29b6d7cd91ef94f824f41bfb"
+ integrity sha512-ohzt7WLraXS0PVPEohYK0f/TxzGu/1vOYeukncd8r6sJybrSUG/dm/lpxC4Ozkhq4rhKEHRPRTKA5x59qjIfjw==
dependencies:
- "@angular-devkit/architect" "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0"
- "@angular-devkit/core" "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- "@angular-devkit/schematics" "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- "@schematics/angular" "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- xmldoc "^1.1.2"
+ "@angular-devkit/architect" "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0 || ^0.1800.0"
+ "@angular-devkit/core" "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
+ "@angular-devkit/schematics" "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
+ "@schematics/angular" "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
+ xmldoc "^1.1.3"
ngx-device-detector@5.0.1:
version "5.0.1"
@@ -16247,16 +16271,16 @@ picocolors@^1.0.0:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
-picomatch@3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516"
- integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==
-
picomatch@4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.1.tgz#68c26c8837399e5819edce48590412ea07f17a07"
integrity sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==
+picomatch@4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab"
+ integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
+
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.0, picomatch@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
@@ -18089,7 +18113,7 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
-"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3:
+"string-width-cjs@npm:string-width@^4.2.0":
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -18107,6 +18131,15 @@ string-width@^1.0.1:
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
+"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
string-width@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
@@ -18165,7 +18198,7 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -18186,6 +18219,13 @@ strip-ansi@^4.0.0:
dependencies:
ansi-regex "^3.0.0"
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
strip-ansi@^7.0.1:
version "7.1.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -19055,7 +19095,7 @@ update-browserslist-db@^1.0.13:
escalade "^3.1.1"
picocolors "^1.0.0"
-uri-js@^4.2.2:
+uri-js@^4.2.2, uri-js@^4.4.1:
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
@@ -19561,7 +19601,7 @@ wordwrap@^1.0.0:
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -19587,6 +19627,15 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
@@ -19645,7 +19694,7 @@ xmlchars@^2.2.0:
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
-xmldoc@^1.1.2:
+xmldoc@^1.1.3:
version "1.3.0"
resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-1.3.0.tgz#7823225b096c74036347c9ec5924d06b6a3cebab"
integrity sha512-y7IRWW6PvEnYQZNZFMRLNJw+p3pezM4nKYPfr15g4OOW9i8VpeydycFuipE2297OvZnh3jSb2pxOt9QpkZUVng==
From 9f875adf0ce00c7897fa49817d316fb308193bac Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Mon, 3 Jun 2024 20:26:58 +0200
Subject: [PATCH 26/92] Feature/improve language localization for de 20240602
(#3452)
* Update translations
* Update changelog
---
CHANGELOG.md | 1 +
apps/client/src/locales/messages.de.xlf | 856 ++++++++++++++++++-----
apps/client/src/locales/messages.es.xlf | 856 ++++++++++++++++++-----
apps/client/src/locales/messages.fr.xlf | 856 ++++++++++++++++++-----
apps/client/src/locales/messages.it.xlf | 856 ++++++++++++++++++-----
apps/client/src/locales/messages.nl.xlf | 856 ++++++++++++++++++-----
apps/client/src/locales/messages.pl.xlf | 854 ++++++++++++++++++-----
apps/client/src/locales/messages.pt.xlf | 856 ++++++++++++++++++-----
apps/client/src/locales/messages.tr.xlf | 860 +++++++++++++++++++-----
apps/client/src/locales/messages.xlf | 853 ++++++++++++++++++-----
apps/client/src/locales/messages.zh.xlf | 854 ++++++++++++++++++-----
11 files changed, 6899 insertions(+), 1659 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 085c05386..af3f26f32 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
+- Improved the language localization for German (`de`)
- Upgraded `ng-extract-i18n-merge` from version `2.10.0` to `2.12.0`
## 2.84.0 - 2024-06-01
diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf
index 68ca7a037..378ee9b59 100644
--- a/apps/client/src/locales/messages.de.xlf
+++ b/apps/client/src/locales/messages.de.xlf
@@ -22,7 +22,7 @@
Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst.
apps/client/src/app/app.component.html
- 184
+ 182
@@ -94,7 +94,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 139
+ 150
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -105,11 +105,11 @@
134
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
221
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
331
@@ -130,7 +130,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 215
+ 226
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -337,7 +337,7 @@
34
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
301
@@ -352,6 +352,10 @@
apps/client/src/app/components/admin-market-data/admin-market-data.html
51
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 125
+
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
150
@@ -465,7 +469,7 @@
26
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
112
@@ -478,7 +482,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 365
+ 376
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -522,7 +526,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 372
+ 383
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -558,10 +562,10 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 130
+ 141
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
209
@@ -841,7 +845,7 @@
262
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
357
@@ -1104,6 +1108,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
188
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 188
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 188
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 188
+
About
@@ -1201,12 +1217,12 @@
Sign in
Einloggen
- apps/client/src/app/components/header/header.component.ts
- 229
+ apps/client/src/app/app-routing.module.ts
+ 141
- apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts
- 7
+ apps/client/src/app/components/header/header.component.ts
+ 229
@@ -1341,12 +1357,12 @@
Investment
Einlage
- apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 58
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 165
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
- 165
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 58
@@ -1441,12 +1457,12 @@
Dividend
Dividenden
- apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 330
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 177
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
- 177
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 330
apps/client/src/app/pages/features/features-page.html
@@ -1474,14 +1490,14 @@
Sektoren
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 191
+ 202
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 327
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
270
@@ -1494,14 +1510,14 @@
Länder
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 201
+ 212
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 327
+ 338
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
282
@@ -1513,7 +1529,7 @@
10
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
377
@@ -1529,7 +1545,7 @@
Report Data Glitch
Datenfehler melden
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
395
@@ -1549,7 +1565,7 @@
6
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
89
@@ -1610,7 +1626,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 233
+ 250
@@ -1622,7 +1638,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 236
+ 253
@@ -2038,11 +2054,11 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 120
+ 130
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 222
+ 233
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -2118,7 +2134,7 @@
Da du bereits eingeloggt bist, kannst du nicht auf die Live Demo zugreifen.
apps/client/src/app/pages/demo/demo-page.component.ts
- 32
+ 35
@@ -2137,8 +2153,8 @@
Features
Features
- apps/client/src/app/pages/features/features-page-routing.module.ts
- 13
+ apps/client/src/app/app-routing.module.ts
+ 65
@@ -2425,7 +2441,7 @@
Quantity
Anzahl
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
154
@@ -2474,7 +2490,7 @@
Kommentar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 352
+ 363
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -2494,14 +2510,14 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 148
+ 159
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 232
+ 243
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
228
@@ -2821,7 +2837,7 @@
Change
Änderung
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
63
@@ -2833,7 +2849,7 @@
Average Unit Price
Ø Preis pro Einheit
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
101
@@ -2841,7 +2857,7 @@
Minimum Price
Minimum Preis
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
128
@@ -2849,7 +2865,7 @@
Maximum Price
Maximum Preis
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
144
@@ -2862,14 +2878,14 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 157
+ 168
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 245
+ 256
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
237
@@ -2882,10 +2898,10 @@
Sektor
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 174
+ 185
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
254
@@ -2894,14 +2910,14 @@
Land
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 185
+ 196
apps/client/src/app/components/admin-users/admin-users.html
77
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
264
@@ -3450,7 +3466,7 @@
Symbol Zuordnung
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 279
+ 290
@@ -3893,12 +3909,12 @@
Fees
Gebühren
- apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 108
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 199
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
- 199
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 108
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -4118,7 +4134,7 @@
Url
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 339
+ 350
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -4506,7 +4522,7 @@
Scraper Konfiguration
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 291
+ 302
@@ -4736,6 +4752,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
72
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 72
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 72
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 72
+
Origin
@@ -4940,6 +4968,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
77
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 77
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 77
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 77
+
Region
@@ -5144,6 +5184,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
82
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 82
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 82
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 82
+
Available in
@@ -5348,6 +5400,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
87
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 87
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 87
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 87
+
✅ Yes
@@ -5552,6 +5616,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
109
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 109
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 109
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 109
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 116
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 116
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 116
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
116
@@ -5952,6 +6040,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
130
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 130
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 130
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 130
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 141
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 141
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 141
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
141
@@ -6352,6 +6464,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
155
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 155
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 155
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 155
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 162
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 162
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 162
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
162
@@ -6752,6 +6888,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
174
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 174
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 174
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 174
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 181
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 181
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 181
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
181
@@ -7156,6 +7316,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
111
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 111
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 111
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 111
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 134
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 134
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 134
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
134
@@ -7558,15 +7742,15 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
- 157
+ 145
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
- 157
+ 145
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
- 157
+ 145
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
@@ -7756,6 +7940,34 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
157
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 157
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 157
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 157
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 157
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 157
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 157
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 164
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
164
@@ -7956,6 +8168,22 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
164
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 164
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 164
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 176
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 176
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
176
@@ -8156,6 +8384,22 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
176
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 176
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 183
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 183
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 183
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
183
@@ -8560,6 +8804,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
118
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 118
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 118
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 118
+
Self-Hosting
@@ -8764,6 +9020,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
123
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 123
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 123
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 123
+
Use anonymously
@@ -8968,6 +9236,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
150
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 150
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 150
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 150
+
Free Plan
@@ -9172,6 +9452,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
169
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 169
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 169
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 169
+
Notes
@@ -9376,6 +9668,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
202
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 202
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 202
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 202
+
Effortlessly track, analyze, and visualize your wealth with Ghostfolio.
@@ -9580,6 +9884,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
227
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 227
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 227
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 227
+
Personal Finance Tools
@@ -9784,6 +10100,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
308
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 308
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 308
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 308
+
Guides
@@ -10456,14 +10784,14 @@
faq
haeufig-gestellte-fragen
-
- apps/client/src/app/app-routing.module.ts
- 10
-
apps/client/src/app/app.component.ts
66
+
+ apps/client/src/app/core/paths.ts
+ 3
+
apps/client/src/app/pages/about/overview/about-overview-page.component.ts
19
@@ -10488,10 +10816,6 @@
features
features
-
- apps/client/src/app/app-routing.module.ts
- 11
-
apps/client/src/app/app.component.ts
67
@@ -10504,6 +10828,10 @@
apps/client/src/app/components/header/header.component.ts
83
+
+ apps/client/src/app/core/paths.ts
+ 4
+
apps/client/src/app/pages/about/overview/about-overview-page.component.ts
20
@@ -10672,6 +11000,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts
27
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts
+ 27
+
apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts
27
@@ -10700,6 +11032,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts
27
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts
+ 27
+
apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts
27
@@ -10724,6 +11060,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts
27
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts
+ 27
+
apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts
27
@@ -10748,10 +11088,6 @@
about
ueber-uns
-
- apps/client/src/app/app-routing.module.ts
- 9
-
apps/client/src/app/app.component.ts
59
@@ -10776,6 +11112,10 @@
apps/client/src/app/components/header/header.component.ts
82
+
+ apps/client/src/app/core/paths.ts
+ 2
+
apps/client/src/app/pages/about/about-page.component.ts
45
@@ -10952,6 +11292,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts
26
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts
+ 26
+
apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts
26
@@ -10980,6 +11324,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts
26
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts
+ 26
+
apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts
26
@@ -11004,6 +11352,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts
26
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts
+ 26
+
apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts
26
@@ -11028,14 +11380,14 @@
privacy-policy
datenschutzbestimmungen
-
- apps/client/src/app/app-routing.module.ts
- 15
-
apps/client/src/app/app.component.ts
64
+
+ apps/client/src/app/core/paths.ts
+ 8
+
apps/client/src/app/pages/about/about-page.component.ts
63
@@ -11044,14 +11396,14 @@
license
lizenz
-
- apps/client/src/app/app-routing.module.ts
- 12
-
apps/client/src/app/app.component.ts
61
+
+ apps/client/src/app/core/paths.ts
+ 5
+
apps/client/src/app/pages/about/about-page.component.ts
55
@@ -11060,10 +11412,6 @@
markets
maerkte
-
- apps/client/src/app/app-routing.module.ts
- 13
-
apps/client/src/app/app.component.ts
68
@@ -11076,6 +11424,10 @@
apps/client/src/app/components/header/header.component.ts
84
+
+ apps/client/src/app/core/paths.ts
+ 6
+
apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts
13
@@ -11092,10 +11444,6 @@
pricing
preise
-
- apps/client/src/app/app-routing.module.ts
- 14
-
apps/client/src/app/app.component.ts
69
@@ -11124,6 +11472,10 @@
apps/client/src/app/core/http-response.interceptor.ts
83
+
+ apps/client/src/app/core/paths.ts
+ 7
+
apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts
13
@@ -11164,10 +11516,6 @@
register
registrierung
-
- apps/client/src/app/app-routing.module.ts
- 16
-
apps/client/src/app/app.component.ts
70
@@ -11178,7 +11526,11 @@
apps/client/src/app/core/auth.guard.ts
- 54
+ 55
+
+
+ apps/client/src/app/core/paths.ts
+ 9
apps/client/src/app/pages/faq/saas/saas-page.component.ts
@@ -11186,7 +11538,7 @@
apps/client/src/app/pages/features/features-page.component.ts
- 18
+ 31
apps/client/src/app/pages/landing/landing-page.component.ts
@@ -11200,10 +11552,6 @@
resources
ressourcen
-
- apps/client/src/app/app-routing.module.ts
- 17
-
apps/client/src/app/app.component.ts
71
@@ -11216,6 +11564,10 @@
apps/client/src/app/components/header/header.component.ts
87
+
+ apps/client/src/app/core/paths.ts
+ 10
+
apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts
14
@@ -11234,7 +11586,7 @@
apps/client/src/app/pages/features/features-page.component.ts
- 19
+ 32
apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts
@@ -11368,6 +11720,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts
29
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts
+ 29
+
apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts
29
@@ -11396,6 +11752,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts
29
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts
+ 29
+
apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts
29
@@ -11420,6 +11780,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts
29
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts
+ 29
+
apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts
29
@@ -11680,6 +12044,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
8
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 8
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 8
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 8
+
Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future.
@@ -11884,6 +12260,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
13
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 13
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 13
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 13
+
Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience.
@@ -12088,6 +12476,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
27
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 27
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 27
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 27
+
Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements.
@@ -12292,6 +12692,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
38
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 38
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 38
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 38
+
open-source-alternative-to
@@ -12508,6 +12920,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
210
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 210
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 210
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 210
+
Ready to take your investments to the next level?
@@ -12712,6 +13136,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
223
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 223
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 223
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 223
+
Get Started
@@ -12916,25 +13352,37 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
232
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 232
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 232
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 232
+
Switzerland
Schweiz
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 72
+ 77
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 102
+ 107
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 530
+ 554
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 580
+ 614
@@ -12942,19 +13390,19 @@
Weltweit
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 73
+ 78
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 341
+ 346
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 462
+ 477
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 581
+ 615
@@ -12962,87 +13410,87 @@
Vereinigte Staaten von Amerika
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 93
+ 98
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 149
+ 154
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 159
+ 164
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 201
+ 206
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 210
+ 215
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 220
+ 225
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 232
+ 237
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 242
+ 247
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 294
+ 299
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 316
+ 321
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 327
+ 332
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 352
+ 357
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 354
+ 359
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 364
+ 369
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 429
+ 444
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 439
+ 454
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 449
+ 464
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 518
+ 542
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 541
+ 565
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 569
+ 603
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 591
+ 625
@@ -13050,7 +13498,7 @@
Belgien
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 179
+ 184
@@ -13058,31 +13506,35 @@
Deutschland
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 140
+ 145
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 190
+ 195
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 274
+ 279
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 284
+ 289
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 305
+ 310
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 339
+ 344
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 385
+ 390
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products.ts
+ 507
@@ -13090,7 +13542,7 @@
Österreich
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 262
+ 267
@@ -13098,7 +13550,7 @@
Italien
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 396
+ 401
@@ -13106,7 +13558,7 @@
Niederlande
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 406
+ 411
@@ -13114,7 +13566,7 @@
Thailand
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 418
+ 433
@@ -13122,7 +13574,7 @@
Neuseeland
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 460
+ 475
@@ -13130,11 +13582,15 @@
Tschechische Republik
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 471
+ 486
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products.ts
+ 532
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 508
+ 575
@@ -13266,15 +13722,15 @@
Frankreich
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 121
+ 126
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 482
+ 497
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 498
+ 522
@@ -13318,7 +13774,7 @@
Benchmark
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 273
+ 284
@@ -13366,7 +13822,7 @@
Finnland
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 490
+ 514
@@ -13672,13 +14128,25 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
49
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 49
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 49
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 49
+
Canada
Kanada
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 561
+ 595
@@ -13710,7 +14178,7 @@
Polen
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 131
+ 136
@@ -13718,7 +14186,7 @@
Südafrika
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 251
+ 256
@@ -13750,7 +14218,7 @@
Ups! Die historischen Daten konnten nicht geparsed werden.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 236
+ 232
@@ -13988,6 +14456,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
190
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 190
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 190
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 190
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 195
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 195
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 195
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
195
@@ -14392,6 +14884,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
191
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 191
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 191
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 191
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 197
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 197
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 197
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
197
@@ -14598,7 +15114,7 @@
Möchtest du diesen Cash-Bestand wirklich löschen?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 102
+ 101
@@ -14622,7 +15138,7 @@
Der aktuelle Marktpreis ist
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 342
+ 336
@@ -14630,7 +15146,7 @@
Test
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 320
@@ -14850,7 +15366,7 @@
Jahre
libs/ui/src/lib/assistant/assistant.component.ts
- 233
+ 250
@@ -14965,7 +15481,7 @@
Activity
Aktivität
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
219
@@ -14973,7 +15489,7 @@
Dividend Yield
Dividendenrendite
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
187
@@ -15013,7 +15529,7 @@
Change with currency effect
Änderung mit Währungseffekt
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
52
@@ -15021,7 +15537,7 @@
Performance with currency effect
Performance mit Währungseffekt
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
79
@@ -15049,6 +15565,14 @@
66
+
+ Internationalization
+ Internationalisierung
+
+ apps/client/src/app/app-routing.module.ts
+ 79
+
+
about
-
- apps/client/src/app/app-routing.module.ts
- 9
-
apps/client/src/app/app.component.ts
59
@@ -32,6 +28,10 @@
apps/client/src/app/components/header/header.component.ts
82
+
+ apps/client/src/app/core/paths.ts
+ 2
+
apps/client/src/app/pages/about/about-page.component.ts
45
@@ -208,6 +208,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts
26
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts
+ 26
+
apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts
26
@@ -236,6 +240,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts
26
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts
+ 26
+
apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts
26
@@ -260,6 +268,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts
26
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts
+ 26
+
apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts
26
@@ -283,14 +295,14 @@
faq
-
- apps/client/src/app/app-routing.module.ts
- 10
-
apps/client/src/app/app.component.ts
66
+
+ apps/client/src/app/core/paths.ts
+ 3
+
apps/client/src/app/pages/about/overview/about-overview-page.component.ts
19
@@ -314,10 +326,6 @@
features
-
- apps/client/src/app/app-routing.module.ts
- 11
-
apps/client/src/app/app.component.ts
67
@@ -330,6 +338,10 @@
apps/client/src/app/components/header/header.component.ts
83
+
+ apps/client/src/app/core/paths.ts
+ 4
+
apps/client/src/app/pages/about/overview/about-overview-page.component.ts
20
@@ -498,6 +510,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts
27
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts
+ 27
+
apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts
27
@@ -526,6 +542,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts
27
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts
+ 27
+
apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts
27
@@ -550,6 +570,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts
27
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts
+ 27
+
apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts
27
@@ -573,14 +597,14 @@
license
-
- apps/client/src/app/app-routing.module.ts
- 12
-
apps/client/src/app/app.component.ts
61
+
+ apps/client/src/app/core/paths.ts
+ 5
+
apps/client/src/app/pages/about/about-page.component.ts
55
@@ -588,10 +612,6 @@
markets
-
- apps/client/src/app/app-routing.module.ts
- 13
-
apps/client/src/app/app.component.ts
68
@@ -604,6 +624,10 @@
apps/client/src/app/components/header/header.component.ts
84
+
+ apps/client/src/app/core/paths.ts
+ 6
+
apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts
13
@@ -619,10 +643,6 @@
pricing
-
- apps/client/src/app/app-routing.module.ts
- 14
-
apps/client/src/app/app.component.ts
69
@@ -651,6 +671,10 @@
apps/client/src/app/core/http-response.interceptor.ts
83
+
+ apps/client/src/app/core/paths.ts
+ 7
+
apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts
13
@@ -690,14 +714,14 @@
privacy-policy
-
- apps/client/src/app/app-routing.module.ts
- 15
-
apps/client/src/app/app.component.ts
64
+
+ apps/client/src/app/core/paths.ts
+ 8
+
apps/client/src/app/pages/about/about-page.component.ts
63
@@ -705,10 +729,6 @@
register
-
- apps/client/src/app/app-routing.module.ts
- 16
-
apps/client/src/app/app.component.ts
70
@@ -719,7 +739,11 @@
apps/client/src/app/core/auth.guard.ts
- 54
+ 55
+
+
+ apps/client/src/app/core/paths.ts
+ 9
apps/client/src/app/pages/faq/saas/saas-page.component.ts
@@ -727,7 +751,7 @@
apps/client/src/app/pages/features/features-page.component.ts
- 18
+ 31
apps/client/src/app/pages/landing/landing-page.component.ts
@@ -740,10 +764,6 @@
resources
-
- apps/client/src/app/app-routing.module.ts
- 17
-
apps/client/src/app/app.component.ts
71
@@ -756,6 +776,10 @@
apps/client/src/app/components/header/header.component.ts
87
+
+ apps/client/src/app/core/paths.ts
+ 10
+
apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts
14
@@ -774,7 +798,7 @@
apps/client/src/app/pages/features/features-page.component.ts
- 19
+ 32
apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts
@@ -908,6 +932,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts
29
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts
+ 29
+
apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts
29
@@ -936,6 +964,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts
29
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts
+ 29
+
apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts
29
@@ -960,6 +992,10 @@
apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts
29
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts
+ 29
+
apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts
29
@@ -1420,6 +1456,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
188
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 188
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 188
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 188
+
Privacy Policy
@@ -1479,7 +1527,7 @@
The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term.
apps/client/src/app/app.component.html
- 184
+ 182
@@ -1578,7 +1626,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 139
+ 150
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -1589,11 +1637,11 @@
134
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
221
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
331
@@ -1646,7 +1694,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 215
+ 226
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -1696,11 +1744,11 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 120
+ 130
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 222
+ 233
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -1880,7 +1928,7 @@
34
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
301
@@ -1894,6 +1942,10 @@
apps/client/src/app/components/admin-market-data/admin-market-data.html
51
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 125
+
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
150
@@ -1988,7 +2040,7 @@
26
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
112
@@ -2000,7 +2052,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 365
+ 376
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -2043,7 +2095,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 372
+ 383
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -2113,14 +2165,14 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 148
+ 159
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 232
+ 243
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
228
@@ -2136,14 +2188,14 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 157
+ 168
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 245
+ 256
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
237
@@ -2159,10 +2211,10 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 130
+ 141
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
209
@@ -2231,7 +2283,7 @@
Oops! Could not parse historical data.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 236
+ 232
@@ -2267,10 +2319,10 @@
Sector
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 174
+ 185
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
254
@@ -2278,14 +2330,14 @@
Country
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 185
+ 196
apps/client/src/app/components/admin-users/admin-users.html
77
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
264
@@ -2293,14 +2345,14 @@
Sectors
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 191
+ 202
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 327
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
270
@@ -2312,14 +2364,14 @@
Countries
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 201
+ 212
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 327
+ 338
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
282
@@ -2327,28 +2379,28 @@
Benchmark
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 273
+ 284
Symbol Mapping
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 279
+ 290
Scraper Configuration
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 291
+ 302
Note
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 352
+ 363
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -2553,7 +2605,7 @@
Url
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 339
+ 350
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -2583,7 +2635,7 @@
262
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
357
@@ -2630,7 +2682,7 @@
10
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
377
@@ -2726,7 +2778,7 @@
6
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
89
@@ -2859,12 +2911,12 @@
Sign in
- apps/client/src/app/components/header/header.component.ts
- 229
+ apps/client/src/app/app-routing.module.ts
+ 141
- apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts
- 7
+ apps/client/src/app/components/header/header.component.ts
+ 229
@@ -3106,12 +3158,12 @@
Investment
- apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 58
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 165
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
- 165
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 58
@@ -3131,12 +3183,12 @@
Fees
- apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 108
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 199
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
- 199
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 108
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -3249,12 +3301,12 @@
Dividend
- apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 330
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 177
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
- 177
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 330
apps/client/src/app/pages/features/features-page.html
@@ -3279,7 +3331,7 @@
Change
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
63
@@ -3290,28 +3342,28 @@
Average Unit Price
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
101
Minimum Price
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
128
Maximum Price
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
144
Quantity
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
154
@@ -3326,7 +3378,7 @@
Report Data Glitch
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
395
@@ -3508,7 +3560,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 233
+ 250
@@ -3519,7 +3571,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 236
+ 253
@@ -4005,7 +4057,7 @@
As you are already logged in, you cannot access the demo account.
apps/client/src/app/pages/demo/demo-page.component.ts
- 32
+ 35
@@ -4037,8 +4089,8 @@
Features
- apps/client/src/app/pages/features/features-page-routing.module.ts
- 13
+ apps/client/src/app/app-routing.module.ts
+ 65
@@ -5641,6 +5693,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
8
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 8
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 8
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 8
+
Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future.
@@ -5844,6 +5908,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
13
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 13
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 13
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 13
+
Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience.
@@ -6047,6 +6123,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
27
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 27
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 27
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 27
+
Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements.
@@ -6250,6 +6338,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
38
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 38
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 38
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 38
+
Ghostfolio vs comparison table
@@ -6453,6 +6553,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
49
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 49
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 49
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 49
+
Founded
@@ -6656,6 +6768,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
72
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 72
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 72
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 72
+
Origin
@@ -6859,8 +6983,20 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
77
-
-
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 77
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 77
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 77
+
+
+
Region
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
@@ -7062,6 +7198,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
82
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 82
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 82
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 82
+
Available in
@@ -7265,6 +7413,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
87
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 87
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 87
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 87
+
✅ Yes
@@ -7468,6 +7628,26 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
109
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 109
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 109
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 109
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 116
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 116
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
116
@@ -7668,6 +7848,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
116
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 116
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 130
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 130
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
130
@@ -7868,6 +8060,22 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
130
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 130
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 141
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 141
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 141
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
141
@@ -8268,6 +8476,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
155
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 155
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 155
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 155
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 162
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 162
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 162
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
162
@@ -8668,6 +8900,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
174
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 174
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 174
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 174
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 181
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 181
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 181
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
181
@@ -9071,6 +9327,26 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
111
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 111
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 111
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 111
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 134
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 134
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
134
@@ -9271,6 +9547,14 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
134
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 134
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 145
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
145
@@ -9471,6 +9755,26 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
145
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 145
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 145
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 157
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 157
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 157
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
157
@@ -9871,6 +10175,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
164
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 164
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 164
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 164
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
176
@@ -10071,6 +10387,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
176
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 176
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 176
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 176
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 183
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 183
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 183
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
183
@@ -10474,6 +10814,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
118
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 118
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 118
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 118
+
Self-Hosting
@@ -10677,6 +11029,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
123
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 123
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 123
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 123
+
Use anonymously
@@ -10880,6 +11244,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
150
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 150
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 150
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 150
+
Free Plan
@@ -11083,6 +11459,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
169
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 169
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 169
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 169
+
Starting from
@@ -11286,6 +11674,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
190
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 190
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 190
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 190
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 195
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 195
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 195
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
195
@@ -11689,6 +12101,30 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
191
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 191
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 191
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 191
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 197
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 197
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 197
+
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
197
@@ -12092,6 +12528,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
202
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 202
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 202
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 202
+
Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub.
@@ -12295,6 +12743,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
210
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 210
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 210
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 210
+
Ready to take your investments to the next level?
@@ -12498,6 +12958,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
223
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 223
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 223
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 223
+
Effortlessly track, analyze, and visualize your wealth with Ghostfolio.
@@ -12701,6 +13173,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
227
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 227
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 227
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 227
+
Get Started
@@ -12904,6 +13388,18 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
232
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 232
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 232
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 232
+
Personal Finance Tools
@@ -13107,257 +13603,277 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
308
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 308
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 308
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
+ 308
+
Switzerland
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 72
+ 77
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 102
+ 107
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 530
+ 554
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 580
+ 614
Global
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 73
+ 78
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 341
+ 346
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 462
+ 477
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 581
+ 615
United States
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 93
+ 98
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 149
+ 154
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 159
+ 164
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 201
+ 206
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 210
+ 215
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 220
+ 225
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 232
+ 237
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 242
+ 247
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 294
+ 299
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 316
+ 321
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 327
+ 332
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 352
+ 357
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 354
+ 359
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 364
+ 369
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 429
+ 444
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 439
+ 454
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 449
+ 464
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 518
+ 542
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 541
+ 565
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 569
+ 603
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 591
+ 625
France
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 121
+ 126
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 482
+ 497
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 498
+ 522
Poland
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 131
+ 136
Germany
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 140
+ 145
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 190
+ 195
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 274
+ 279
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 284
+ 289
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 305
+ 310
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products.ts
+ 344
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 339
+ 390
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 385
+ 507
Belgium
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 179
+ 184
South Africa
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 251
+ 256
Austria
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 262
+ 267
Italy
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 396
+ 401
Netherlands
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 406
+ 411
Thailand
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 418
+ 433
New Zealand
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 460
+ 475
Czech Republic
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 471
+ 486
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 508
+ 532
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/products.ts
+ 575
Finland
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 490
+ 514
Canada
apps/client/src/app/pages/resources/personal-finance-tools/products.ts
- 561
+ 595
@@ -13435,7 +13951,7 @@
Do you really want to delete this account balance?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 102
+ 101
@@ -14048,14 +14564,14 @@
The current market price is
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 342
+ 336
Test
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 320
@@ -14243,7 +14759,7 @@
years
libs/ui/src/lib/assistant/assistant.component.ts
- 233
+ 250
@@ -14345,14 +14861,14 @@
Activity
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
219
Dividend Yield
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
187
@@ -14387,14 +14903,14 @@
Change with currency effect
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
52
Performance with currency effect
- apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
79
@@ -14419,6 +14935,13 @@
66
+
+ Internationalization
+
+ apps/client/src/app/app-routing.module.ts
+ 79
+
+