Merge branch 'main' of github.com:ghostfolio/ghostfolio
Some checks failed
Extract locales / extract_locales (push) Failing after 16m9s
Some checks failed
Extract locales / extract_locales (push) Failing after 16m9s
This commit is contained in:
commit
7eb5493dd7
40
.github/workflows/extract-locales.yml
vendored
Normal file
40
.github/workflows/extract-locales.yml
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
name: Extract locales
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
extract_locales:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Extract locales
|
||||||
|
run: npm run extract-locales
|
||||||
|
|
||||||
|
- name: Check changes
|
||||||
|
id: verify-changed-files
|
||||||
|
uses: tj-actions/verify-changed-files@v20
|
||||||
|
|
||||||
|
- name: Create pull request
|
||||||
|
if: steps.verify-changed-files.outputs.files_changed == 'true'
|
||||||
|
uses: peter-evans/create-pull-request@v7
|
||||||
|
with:
|
||||||
|
author: 'github-actions[bot] <github-actions[bot]@users.noreply.github.com>'
|
||||||
|
branch: 'feature/update-locales'
|
||||||
|
commit-message: 'Update locales'
|
||||||
|
delete-branch: true
|
||||||
|
title: 'Feature/update locales'
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
20
CHANGELOG.md
20
CHANGELOG.md
@ -9,10 +9,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
- Migrated the database seeding to _TypeScript_
|
||||||
|
- Upgraded `@trivago/prettier-plugin-sort-imports` from version `4.3.0` to `5.2.1`
|
||||||
|
- Upgraded `ng-extract-i18n-merge` from version `2.13.1` to `2.14.1`
|
||||||
|
|
||||||
|
## 2.136.0 - 2025-01-24
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Set up a _GitHub Action_ to automatically extract locales when the `main` branch changes
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Extended the _Financial Modeling Prep_ service
|
||||||
- Improved the language localization for Ukrainian (`uk`)
|
- Improved the language localization for Ukrainian (`uk`)
|
||||||
|
- Refreshed the cryptocurrencies list
|
||||||
- Upgraded `date-fns` from version `3.6.0` to `4.1.0`
|
- Upgraded `date-fns` from version `3.6.0` to `4.1.0`
|
||||||
- Upgraded `rxjs` from version `7.5.6` to `7.8.1`
|
- Upgraded `rxjs` from version `7.5.6` to `7.8.1`
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed an issue with the detection of the thousand separator by locale
|
||||||
|
- Fixed an issue with holdings and sectors while using symbol profile overrides
|
||||||
|
- Fixed an issue with the MIME type detection in the scraper configuration
|
||||||
|
|
||||||
## 2.135.0 - 2025-01-19
|
## 2.135.0 - 2025-01-19
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
"0xVPN": "0xVPN.org",
|
"0xVPN": "0xVPN.org",
|
||||||
"1-UP": "1-UP",
|
"1-UP": "1-UP",
|
||||||
"1000SATS": "SATS",
|
"1000SATS": "SATS",
|
||||||
|
"1000X": "1000x by Virtuals",
|
||||||
"10SET": "Tenset",
|
"10SET": "Tenset",
|
||||||
"1ART": "ArtWallet",
|
"1ART": "ArtWallet",
|
||||||
"1CAT": "Bitcoin Cats",
|
"1CAT": "Bitcoin Cats",
|
||||||
@ -212,6 +213,7 @@
|
|||||||
"ACM": "AC Milan Fan Token",
|
"ACM": "AC Milan Fan Token",
|
||||||
"ACN": "AvonCoin",
|
"ACN": "AvonCoin",
|
||||||
"ACOIN": "ACoin",
|
"ACOIN": "ACoin",
|
||||||
|
"ACOLYT": "Acolyte by Virtuals",
|
||||||
"ACP": "Anarchists Prime",
|
"ACP": "Anarchists Prime",
|
||||||
"ACPT": "Crypto Accept",
|
"ACPT": "Crypto Accept",
|
||||||
"ACQ": "Acquire.Fi",
|
"ACQ": "Acquire.Fi",
|
||||||
@ -332,6 +334,7 @@
|
|||||||
"AGIL": "Agility LSD",
|
"AGIL": "Agility LSD",
|
||||||
"AGIV1": "SingularityNET v1",
|
"AGIV1": "SingularityNET v1",
|
||||||
"AGIX": "SingularityNET",
|
"AGIX": "SingularityNET",
|
||||||
|
"AGIXBT": "AGIXBT by Virtuals",
|
||||||
"AGLA": "Angola",
|
"AGLA": "Angola",
|
||||||
"AGLD": "Adventure Gold",
|
"AGLD": "Adventure Gold",
|
||||||
"AGM": "Argoneum",
|
"AGM": "Argoneum",
|
||||||
@ -363,12 +366,13 @@
|
|||||||
"AIBCOIN": "AIBLOCK",
|
"AIBCOIN": "AIBLOCK",
|
||||||
"AIBK": "AIB Utility Token",
|
"AIBK": "AIB Utility Token",
|
||||||
"AIBU": "AIBUZZ TOKEN",
|
"AIBU": "AIBUZZ TOKEN",
|
||||||
"AIC": "AI Crypto",
|
"AIC": "AI Companions",
|
||||||
"AICELL": "AICell",
|
"AICELL": "AICell",
|
||||||
"AICH": "AIChain",
|
"AICH": "AIChain",
|
||||||
"AICO": "AICON",
|
"AICO": "AICON",
|
||||||
"AICODE": "AI CODE",
|
"AICODE": "AI CODE",
|
||||||
"AICORE": "AICORE",
|
"AICORE": "AICORE",
|
||||||
|
"AICRYPTO": "AI Crypto",
|
||||||
"AID": "AidCoin",
|
"AID": "AidCoin",
|
||||||
"AIDA": "Ai-Da robot",
|
"AIDA": "Ai-Da robot",
|
||||||
"AIDI": "Aidi Inu",
|
"AIDI": "Aidi Inu",
|
||||||
@ -405,6 +409,7 @@
|
|||||||
"AINU": "Ainu Token",
|
"AINU": "Ainu Token",
|
||||||
"AION": "Aion",
|
"AION": "Aion",
|
||||||
"AIONE": "AiONE",
|
"AIONE": "AiONE",
|
||||||
|
"AIOS": "INT OS",
|
||||||
"AIOT": "AIOT Token",
|
"AIOT": "AIOT Token",
|
||||||
"AIOZ": "AIOZ Network",
|
"AIOZ": "AIOZ Network",
|
||||||
"AIPAD": "AIPAD",
|
"AIPAD": "AIPAD",
|
||||||
@ -438,6 +443,7 @@
|
|||||||
"AITRA": "Aitra",
|
"AITRA": "Aitra",
|
||||||
"AITT": "AITrading",
|
"AITT": "AITrading",
|
||||||
"AIUS": "Arbius",
|
"AIUS": "Arbius",
|
||||||
|
"AIVIA": "AI Virtual Agents",
|
||||||
"AIWALLET": "AiWallet Token",
|
"AIWALLET": "AiWallet Token",
|
||||||
"AIX": "Aigang",
|
"AIX": "Aigang",
|
||||||
"AIXBT": "aixbt by Virtuals",
|
"AIXBT": "aixbt by Virtuals",
|
||||||
@ -617,6 +623,7 @@
|
|||||||
"ANDYBSC": "ANDY",
|
"ANDYBSC": "ANDY",
|
||||||
"ANDYMAN": "ANDYMAN",
|
"ANDYMAN": "ANDYMAN",
|
||||||
"ANDYSOL": "Andy on SOL",
|
"ANDYSOL": "Andy on SOL",
|
||||||
|
"ANEX": "AstroNexus",
|
||||||
"ANGEL": "Crypto Angel",
|
"ANGEL": "Crypto Angel",
|
||||||
"ANGL": "Angel Token",
|
"ANGL": "Angel Token",
|
||||||
"ANGLE": "ANGLE",
|
"ANGLE": "ANGLE",
|
||||||
@ -743,13 +750,14 @@
|
|||||||
"ARBS": "Arbswap",
|
"ARBS": "Arbswap",
|
||||||
"ARBT": "ARBITRAGE",
|
"ARBT": "ARBITRAGE",
|
||||||
"ARBUZ": "ARBUZ",
|
"ARBUZ": "ARBUZ",
|
||||||
"ARC": "Arc",
|
"ARC": "AI Rig Complex",
|
||||||
"ARCA": "Legend of Arcadia",
|
"ARCA": "Legend of Arcadia",
|
||||||
"ARCAD": "Arcadeum",
|
"ARCAD": "Arcadeum",
|
||||||
"ARCADE": "ARCADE",
|
"ARCADE": "ARCADE",
|
||||||
"ARCADECITY": "Arcade City",
|
"ARCADECITY": "Arcade City",
|
||||||
"ARCADEF": "arcadefi",
|
"ARCADEF": "arcadefi",
|
||||||
"ARCADEN": "ArcadeNetwork",
|
"ARCADEN": "ArcadeNetwork",
|
||||||
|
"ARCAI": "ARCAI",
|
||||||
"ARCANE": "Arcane Token",
|
"ARCANE": "Arcane Token",
|
||||||
"ARCAS": "Arcas",
|
"ARCAS": "Arcas",
|
||||||
"ARCH": "Archway",
|
"ARCH": "Archway",
|
||||||
@ -757,6 +765,7 @@
|
|||||||
"ARCHCOIN": "ArchCoin",
|
"ARCHCOIN": "ArchCoin",
|
||||||
"ARCHE": "Archean",
|
"ARCHE": "Archean",
|
||||||
"ARCHIVE": "Chainback",
|
"ARCHIVE": "Chainback",
|
||||||
|
"ARCINTEL": "Arc",
|
||||||
"ARCO": "AquariusCoin",
|
"ARCO": "AquariusCoin",
|
||||||
"ARCONA": "Arcona",
|
"ARCONA": "Arcona",
|
||||||
"ARCT": "ArbitrageCT",
|
"ARCT": "ArbitrageCT",
|
||||||
@ -1272,6 +1281,7 @@
|
|||||||
"BASEDP": "Based Pepe",
|
"BASEDP": "Based Pepe",
|
||||||
"BASEDR": "Based Rabbit",
|
"BASEDR": "Based Rabbit",
|
||||||
"BASEDS": "BasedSwap",
|
"BASEDS": "BasedSwap",
|
||||||
|
"BASEDTURBO": "Based Turbo",
|
||||||
"BASEDV1": "Based Money v1",
|
"BASEDV1": "Based Money v1",
|
||||||
"BASEHEROES": "Baseheroes",
|
"BASEHEROES": "Baseheroes",
|
||||||
"BASEPROTOCOL": "Base Protocol",
|
"BASEPROTOCOL": "Base Protocol",
|
||||||
@ -1393,6 +1403,7 @@
|
|||||||
"BDID": "BDID",
|
"BDID": "BDID",
|
||||||
"BDL": "Bitdeal",
|
"BDL": "Bitdeal",
|
||||||
"BDOG": "Bulldog Token",
|
"BDOG": "Bulldog Token",
|
||||||
|
"BDOGITO": "BullDogito",
|
||||||
"BDOT": "Binance Wrapped DOT",
|
"BDOT": "Binance Wrapped DOT",
|
||||||
"BDP": "Big Data Protocol",
|
"BDP": "Big Data Protocol",
|
||||||
"BDPI": "Interest Bearing Defi Pulse Index",
|
"BDPI": "Interest Bearing Defi Pulse Index",
|
||||||
@ -1513,6 +1524,7 @@
|
|||||||
"BFT": "BF Token",
|
"BFT": "BF Token",
|
||||||
"BFTB": "Brazil Fan Token",
|
"BFTB": "Brazil Fan Token",
|
||||||
"BFTC": "BITS FACTOR",
|
"BFTC": "BITS FACTOR",
|
||||||
|
"BFWOG": "Based Fwog (basedfwog.info)",
|
||||||
"BFX": "BitFinex Tokens",
|
"BFX": "BitFinex Tokens",
|
||||||
"BG": "BunnyPark Game",
|
"BG": "BunnyPark Game",
|
||||||
"BGB": "Bitget token",
|
"BGB": "Bitget token",
|
||||||
@ -1591,7 +1603,7 @@
|
|||||||
"BINS": "Bitsense",
|
"BINS": "Bitsense",
|
||||||
"BINTEX": "Bintex Futures",
|
"BINTEX": "Bintex Futures",
|
||||||
"BINU": "Blast Inu",
|
"BINU": "Blast Inu",
|
||||||
"BIO": "BITONE",
|
"BIO": "Bio Protocol",
|
||||||
"BIOB": "BioBar",
|
"BIOB": "BioBar",
|
||||||
"BIOC": "BioCrypt",
|
"BIOC": "BioCrypt",
|
||||||
"BIOCOIN": "Biocoin",
|
"BIOCOIN": "Biocoin",
|
||||||
@ -1646,6 +1658,7 @@
|
|||||||
"BITNEW": "BitNewChain",
|
"BITNEW": "BitNewChain",
|
||||||
"BITO": "BitoPro Exchange Token",
|
"BITO": "BitoPro Exchange Token",
|
||||||
"BITOK": "BitOKX",
|
"BITOK": "BitOKX",
|
||||||
|
"BITONE": "BITONE",
|
||||||
"BITORB": "BitOrbit",
|
"BITORB": "BitOrbit",
|
||||||
"BITRA": "Bitratoken",
|
"BITRA": "Bitratoken",
|
||||||
"BITRADIO": "Bitradio",
|
"BITRADIO": "Bitradio",
|
||||||
@ -2015,6 +2028,7 @@
|
|||||||
"BOSU": "Bosu Inu",
|
"BOSU": "Bosu Inu",
|
||||||
"BOT": "Bot Planet",
|
"BOT": "Bot Planet",
|
||||||
"BOTC": "BotChain",
|
"BOTC": "BotChain",
|
||||||
|
"BOTIFY": "BOTIFY",
|
||||||
"BOTS": "ArkDAO",
|
"BOTS": "ArkDAO",
|
||||||
"BOTTO": "Botto",
|
"BOTTO": "Botto",
|
||||||
"BOTX": "BOTXCOIN",
|
"BOTX": "BOTXCOIN",
|
||||||
@ -2144,6 +2158,7 @@
|
|||||||
"BROTHER": "BROTHER",
|
"BROTHER": "BROTHER",
|
||||||
"BROWN": "BrowniesSwap",
|
"BROWN": "BrowniesSwap",
|
||||||
"BROZ": "Brozinkerbell",
|
"BROZ": "Brozinkerbell",
|
||||||
|
"BRP": "BananaRepublic",
|
||||||
"BRRR": "Burrow",
|
"BRRR": "Burrow",
|
||||||
"BRS": "Broovs Projects",
|
"BRS": "Broovs Projects",
|
||||||
"BRT": "Bikerush",
|
"BRT": "Bikerush",
|
||||||
@ -2288,6 +2303,7 @@
|
|||||||
"BTNYX": "BitOnyx Token",
|
"BTNYX": "BitOnyx Token",
|
||||||
"BTO": "Bottos",
|
"BTO": "Bottos",
|
||||||
"BTOP": "Botopia.Finance",
|
"BTOP": "Botopia.Finance",
|
||||||
|
"BTORO": "Bitoro Network",
|
||||||
"BTP": "Bitpaid",
|
"BTP": "Bitpaid",
|
||||||
"BTPL": "Bitcoin Planet",
|
"BTPL": "Bitcoin Planet",
|
||||||
"BTQ": "BitQuark",
|
"BTQ": "BitQuark",
|
||||||
@ -2577,6 +2593,7 @@
|
|||||||
"CATELON": "CatElonMars",
|
"CATELON": "CatElonMars",
|
||||||
"CATEX": "CATEX",
|
"CATEX": "CATEX",
|
||||||
"CATFISH": "Catfish",
|
"CATFISH": "Catfish",
|
||||||
|
"CATG": "Crypto Agent Trading",
|
||||||
"CATGAME": "Cookie Cat Game",
|
"CATGAME": "Cookie Cat Game",
|
||||||
"CATGIRL": "Catgirl",
|
"CATGIRL": "Catgirl",
|
||||||
"CATGOKU": "Catgoku",
|
"CATGOKU": "Catgoku",
|
||||||
@ -2789,6 +2806,7 @@
|
|||||||
"CHAT": "Solchat",
|
"CHAT": "Solchat",
|
||||||
"CHATAI": "ChatAI Token",
|
"CHATAI": "ChatAI Token",
|
||||||
"CHATGPT": "AI Dragon",
|
"CHATGPT": "AI Dragon",
|
||||||
|
"CHATOSHI": "chAtoshI",
|
||||||
"CHATTY": "ChatGPT's Mascot",
|
"CHATTY": "ChatGPT's Mascot",
|
||||||
"CHB": "COINHUB TOKEN",
|
"CHB": "COINHUB TOKEN",
|
||||||
"CHBR": "CryptoHub",
|
"CHBR": "CryptoHub",
|
||||||
@ -2993,6 +3011,7 @@
|
|||||||
"CLU": "CluCoin",
|
"CLU": "CluCoin",
|
||||||
"CLUB": "ClubCoin",
|
"CLUB": "ClubCoin",
|
||||||
"CLUD": "CludCoin",
|
"CLUD": "CludCoin",
|
||||||
|
"CLUSTR": "Clustr Labs",
|
||||||
"CLV": "Clover Finance",
|
"CLV": "Clover Finance",
|
||||||
"CLVA": "Clever DeFi",
|
"CLVA": "Clever DeFi",
|
||||||
"CLVX": "Calvex",
|
"CLVX": "Calvex",
|
||||||
@ -3337,6 +3356,7 @@
|
|||||||
"CROWD": "CrowdCoin",
|
"CROWD": "CrowdCoin",
|
||||||
"CROWDWIZ": "Crowdwiz",
|
"CROWDWIZ": "Crowdwiz",
|
||||||
"CROWN": "Crown by Third Time Games",
|
"CROWN": "Crown by Third Time Games",
|
||||||
|
"CROWWITH": "crow with knife",
|
||||||
"CROX": "CroxSwap",
|
"CROX": "CroxSwap",
|
||||||
"CRP": "Crypton",
|
"CRP": "Crypton",
|
||||||
"CRPS": "CryptoPennies",
|
"CRPS": "CryptoPennies",
|
||||||
@ -3793,6 +3813,7 @@
|
|||||||
"DEER": "ToxicDeer Finance",
|
"DEER": "ToxicDeer Finance",
|
||||||
"DEEX": "DEEX",
|
"DEEX": "DEEX",
|
||||||
"DEEZ": "DEEZ NUTS",
|
"DEEZ": "DEEZ NUTS",
|
||||||
|
"DEFAI": "DeFAI",
|
||||||
"DEFC": "Defi Coin",
|
"DEFC": "Defi Coin",
|
||||||
"DEFEND": "Blockdefend AI",
|
"DEFEND": "Blockdefend AI",
|
||||||
"DEFI": "DeFi",
|
"DEFI": "DeFi",
|
||||||
@ -3980,6 +4001,7 @@
|
|||||||
"DIGI": "Digiverse",
|
"DIGI": "Digiverse",
|
||||||
"DIGIC": "DigiCube",
|
"DIGIC": "DigiCube",
|
||||||
"DIGIF": "DigiFel",
|
"DIGIF": "DigiFel",
|
||||||
|
"DIGIMON": "Digimon",
|
||||||
"DIGIT": "Digital Asset Rights Token",
|
"DIGIT": "Digital Asset Rights Token",
|
||||||
"DIGITAL": "Digital Reserve Currency",
|
"DIGITAL": "Digital Reserve Currency",
|
||||||
"DIGITS": "Digits DAO",
|
"DIGITS": "Digits DAO",
|
||||||
@ -4327,6 +4349,7 @@
|
|||||||
"DRS": "Digital Rupees",
|
"DRS": "Digital Rupees",
|
||||||
"DRT": "DomRaider",
|
"DRT": "DomRaider",
|
||||||
"DRUGS": "Big Pharmai",
|
"DRUGS": "Big Pharmai",
|
||||||
|
"DRV": "Derive",
|
||||||
"DRXNE": "Droxne",
|
"DRXNE": "Droxne",
|
||||||
"DRZ": "Droidz",
|
"DRZ": "Droidz",
|
||||||
"DS": "DeStorage",
|
"DS": "DeStorage",
|
||||||
@ -4386,6 +4409,7 @@
|
|||||||
"DUC": "DucatusCoin",
|
"DUC": "DucatusCoin",
|
||||||
"DUCATO": "Ducato Protocol Token",
|
"DUCATO": "Ducato Protocol Token",
|
||||||
"DUCK": "Unit Protocol New",
|
"DUCK": "Unit Protocol New",
|
||||||
|
"DUCKAI": "Duck AI",
|
||||||
"DUCKC": "DuckCoin",
|
"DUCKC": "DuckCoin",
|
||||||
"DUCKD": "DuckDuckCoin",
|
"DUCKD": "DuckDuckCoin",
|
||||||
"DUCKER": "Ducker",
|
"DUCKER": "Ducker",
|
||||||
@ -4463,6 +4487,7 @@
|
|||||||
"DYAD": "Dyad Stable",
|
"DYAD": "Dyad Stable",
|
||||||
"DYC": "Dycoin",
|
"DYC": "Dycoin",
|
||||||
"DYDX": "dYdX",
|
"DYDX": "dYdX",
|
||||||
|
"DYDXV1": "dYdX v1",
|
||||||
"DYM": "Dymension",
|
"DYM": "Dymension",
|
||||||
"DYN": "Dynamic",
|
"DYN": "Dynamic",
|
||||||
"DYNA": "Dynamix",
|
"DYNA": "Dynamix",
|
||||||
@ -4622,7 +4647,8 @@
|
|||||||
"EGI": "eGame",
|
"EGI": "eGame",
|
||||||
"EGL": "The Eagle Of Truth",
|
"EGL": "The Eagle Of Truth",
|
||||||
"EGLD": "eGold",
|
"EGLD": "eGold",
|
||||||
"EGO": "EGOcoin",
|
"EGO": "Paysenger EGO",
|
||||||
|
"EGOCOIN": "EGOcoin",
|
||||||
"EGOD": "EgodCoin",
|
"EGOD": "EgodCoin",
|
||||||
"EGOLD": "EGOLD",
|
"EGOLD": "EGOLD",
|
||||||
"EGON": "EgonCoin",
|
"EGON": "EgonCoin",
|
||||||
@ -4722,7 +4748,6 @@
|
|||||||
"ELUSKMON": "Elusk Mon",
|
"ELUSKMON": "Elusk Mon",
|
||||||
"ELV": "Elvantis",
|
"ELV": "Elvantis",
|
||||||
"ELVN": "11Minutes",
|
"ELVN": "11Minutes",
|
||||||
"ELX": "Energy Ledger",
|
|
||||||
"ELY": "Elysian",
|
"ELY": "Elysian",
|
||||||
"ELYS": "Elys Network",
|
"ELYS": "Elys Network",
|
||||||
"ELYSIUM": "Elysium",
|
"ELYSIUM": "Elysium",
|
||||||
@ -4773,6 +4798,7 @@
|
|||||||
"ENE": "EneCoin",
|
"ENE": "EneCoin",
|
||||||
"ENEAR": "Near (Energiswap)",
|
"ENEAR": "Near (Energiswap)",
|
||||||
"ENEDEX": "Enedex",
|
"ENEDEX": "Enedex",
|
||||||
|
"ENERGYLEDGER": "Energy Ledger",
|
||||||
"ENERGYX": "Safe Energy",
|
"ENERGYX": "Safe Energy",
|
||||||
"ENG": "Enigma",
|
"ENG": "Enigma",
|
||||||
"ENGT": "Engagement Token",
|
"ENGT": "Engagement Token",
|
||||||
@ -5003,6 +5029,7 @@
|
|||||||
"EVAI": "EVA Intelligence",
|
"EVAI": "EVA Intelligence",
|
||||||
"EVAN": "Evanesco Network",
|
"EVAN": "Evanesco Network",
|
||||||
"EVAULT": "EthereumVault",
|
"EVAULT": "EthereumVault",
|
||||||
|
"EVAV1": "Evadore v1",
|
||||||
"EVC": "Eventchain",
|
"EVC": "Eventchain",
|
||||||
"EVCC": "Eco Value Coin",
|
"EVCC": "Eco Value Coin",
|
||||||
"EVCOIN": "EverestCoin",
|
"EVCOIN": "EverestCoin",
|
||||||
@ -5111,10 +5138,11 @@
|
|||||||
"FADO": "FADO Go",
|
"FADO": "FADO Go",
|
||||||
"FAG": "PoorFag",
|
"FAG": "PoorFag",
|
||||||
"FAH": "Falcons",
|
"FAH": "Falcons",
|
||||||
"FAI": "Fairum",
|
"FAI": "Freysa AI",
|
||||||
"FAIR": "FairCoin",
|
"FAIR": "FairCoin",
|
||||||
"FAIRC": "Faireum Token",
|
"FAIRC": "Faireum Token",
|
||||||
"FAIRG": "FairGame",
|
"FAIRG": "FairGame",
|
||||||
|
"FAIRUM": "Fairum",
|
||||||
"FAKE": "FAKE COIN",
|
"FAKE": "FAKE COIN",
|
||||||
"FAKEAI": "DeepFakeAI",
|
"FAKEAI": "DeepFakeAI",
|
||||||
"FAKT": "Medifakt",
|
"FAKT": "Medifakt",
|
||||||
@ -5633,7 +5661,8 @@
|
|||||||
"FUBAO": "FUBAO",
|
"FUBAO": "FUBAO",
|
||||||
"FUCK": "Fuck Token",
|
"FUCK": "Fuck Token",
|
||||||
"FUD": "FUD.finance",
|
"FUD": "FUD.finance",
|
||||||
"FUEL": "Jetfuel Finance",
|
"FUEGO": "FUEGO",
|
||||||
|
"FUEL": "Fuel Network",
|
||||||
"FUELX": "Fuel",
|
"FUELX": "Fuel",
|
||||||
"FUFU": "Fufu Token",
|
"FUFU": "Fufu Token",
|
||||||
"FUG": "FUG",
|
"FUG": "FUG",
|
||||||
@ -5754,6 +5783,7 @@
|
|||||||
"GAMEST": "GameStop Coin",
|
"GAMEST": "GameStop Coin",
|
||||||
"GAMESTARS": "Game Stars",
|
"GAMESTARS": "Game Stars",
|
||||||
"GAMESTO": "GameStop",
|
"GAMESTO": "GameStop",
|
||||||
|
"GAMESTOP": "GameStop",
|
||||||
"GAMESTUMP": "GAMESTUMP",
|
"GAMESTUMP": "GAMESTUMP",
|
||||||
"GAMET": "GAME Token",
|
"GAMET": "GAME Token",
|
||||||
"GAMEX": "GameX",
|
"GAMEX": "GameX",
|
||||||
@ -5978,6 +6008,7 @@
|
|||||||
"GINGER": "GINGER",
|
"GINGER": "GINGER",
|
||||||
"GINNAN": "Ginnan The Cat",
|
"GINNAN": "Ginnan The Cat",
|
||||||
"GINOA": "Ginoa",
|
"GINOA": "Ginoa",
|
||||||
|
"GINU": "Green Shiba Inu",
|
||||||
"GINUX": "Green Shiba Inu",
|
"GINUX": "Green Shiba Inu",
|
||||||
"GINZA": "GINZA NETWORK",
|
"GINZA": "GINZA NETWORK",
|
||||||
"GIO": "Graviocoin",
|
"GIO": "Graviocoin",
|
||||||
@ -6546,6 +6577,9 @@
|
|||||||
"HEM": "Hemera",
|
"HEM": "Hemera",
|
||||||
"HEMAN": "HE-MAN",
|
"HEMAN": "HE-MAN",
|
||||||
"HEMULE": "Hemule",
|
"HEMULE": "Hemule",
|
||||||
|
"HENG": "HengCoin",
|
||||||
|
"HENLO": "Henlo",
|
||||||
|
"HENLOV1": "Henlo v1",
|
||||||
"HEP": "Health Potion",
|
"HEP": "Health Potion",
|
||||||
"HER": "Hero Node",
|
"HER": "Hero Node",
|
||||||
"HERA": "Hero Arena",
|
"HERA": "Hero Arena",
|
||||||
@ -6652,6 +6686,8 @@
|
|||||||
"HLINK": "Chainlink (Harmony One Bridge)",
|
"HLINK": "Chainlink (Harmony One Bridge)",
|
||||||
"HLM": "Helium",
|
"HLM": "Helium",
|
||||||
"HLN": "Holonus",
|
"HLN": "Holonus",
|
||||||
|
"HLO": "Halo",
|
||||||
|
"HLOV1": "Halo v1",
|
||||||
"HLP": "Purpose Coin",
|
"HLP": "Purpose Coin",
|
||||||
"HLPR": "HELPER COIN",
|
"HLPR": "HELPER COIN",
|
||||||
"HLPT": "HLP Token",
|
"HLPT": "HLP Token",
|
||||||
@ -6777,6 +6813,7 @@
|
|||||||
"HSAI": "HealthSci.AI",
|
"HSAI": "HealthSci.AI",
|
||||||
"HSC": "HashCoin",
|
"HSC": "HashCoin",
|
||||||
"HSF": "Hillstone Finance",
|
"HSF": "Hillstone Finance",
|
||||||
|
"HSK": "HashKey Platform Token",
|
||||||
"HSN": "Hyper Speed Network",
|
"HSN": "Hyper Speed Network",
|
||||||
"HSP": "Horse Power",
|
"HSP": "Horse Power",
|
||||||
"HSS": "Hashshare",
|
"HSS": "Hashshare",
|
||||||
@ -6792,6 +6829,7 @@
|
|||||||
"HTDF": "Orient Walt",
|
"HTDF": "Orient Walt",
|
||||||
"HTE": "Hepton",
|
"HTE": "Hepton",
|
||||||
"HTER": "Biogen",
|
"HTER": "Biogen",
|
||||||
|
"HTERM": "Hiero Terminal",
|
||||||
"HTK": "Hard To Kill",
|
"HTK": "Hard To Kill",
|
||||||
"HTM": "Hatom",
|
"HTM": "Hatom",
|
||||||
"HTML": "HTML Coin",
|
"HTML": "HTML Coin",
|
||||||
@ -6816,6 +6854,7 @@
|
|||||||
"HUM": "Humanscape",
|
"HUM": "Humanscape",
|
||||||
"HUMAI": "Humanoid AI",
|
"HUMAI": "Humanoid AI",
|
||||||
"HUMP": "Hump",
|
"HUMP": "Hump",
|
||||||
|
"HUMV1": "Humanscape v1",
|
||||||
"HUND": "HUND MEME COIN",
|
"HUND": "HUND MEME COIN",
|
||||||
"HUNDRED": "HUNDRED",
|
"HUNDRED": "HUNDRED",
|
||||||
"HUNNY": "Pancake Hunny",
|
"HUNNY": "Pancake Hunny",
|
||||||
@ -6952,6 +6991,7 @@
|
|||||||
"IDO": "Idexo",
|
"IDO": "Idexo",
|
||||||
"IDOL": "IDOLINU",
|
"IDOL": "IDOLINU",
|
||||||
"IDORU": "Vip2Fan",
|
"IDORU": "Vip2Fan",
|
||||||
|
"IDRISS": "IDRISS",
|
||||||
"IDRT": "Rupiah Token",
|
"IDRT": "Rupiah Token",
|
||||||
"IDRX": "IDRX",
|
"IDRX": "IDRX",
|
||||||
"IDT": "InvestDigital",
|
"IDT": "InvestDigital",
|
||||||
@ -7309,10 +7349,12 @@
|
|||||||
"JET": "Jet Protocol",
|
"JET": "Jet Protocol",
|
||||||
"JETCAT": "Jetcat",
|
"JETCAT": "Jetcat",
|
||||||
"JETCOIN": "Jetcoin",
|
"JETCOIN": "Jetcoin",
|
||||||
|
"JETFUEL": "Jetfuel Finance",
|
||||||
"JETTON": "JetTon Game",
|
"JETTON": "JetTon Game",
|
||||||
"JEUR": "Jarvis Synthetic Euro",
|
"JEUR": "Jarvis Synthetic Euro",
|
||||||
"JEW": "Shekel",
|
"JEW": "Shekel",
|
||||||
"JEWEL": "DeFi Kingdoms",
|
"JEWEL": "DeFi Kingdoms",
|
||||||
|
"JEWELRY": "Jewelry Token",
|
||||||
"JEX": "JEX Token",
|
"JEX": "JEX Token",
|
||||||
"JF": "Jswap.Finance",
|
"JF": "Jswap.Finance",
|
||||||
"JFI": "JackPool.finance",
|
"JFI": "JackPool.finance",
|
||||||
@ -7347,6 +7389,7 @@
|
|||||||
"JMT": "JMTIME",
|
"JMT": "JMTIME",
|
||||||
"JMZ": "Jimizz",
|
"JMZ": "Jimizz",
|
||||||
"JNB": "Jinbi Token",
|
"JNB": "Jinbi Token",
|
||||||
|
"JNFTC": "Jumbo Blockchain",
|
||||||
"JNGL": "Jungle Labz",
|
"JNGL": "Jungle Labz",
|
||||||
"JNS": "Janus",
|
"JNS": "Janus",
|
||||||
"JNT": "Jibrel Network Token",
|
"JNT": "Jibrel Network Token",
|
||||||
@ -7358,6 +7401,7 @@
|
|||||||
"JOE": "JOE",
|
"JOE": "JOE",
|
||||||
"JOEB": "Joe Biden",
|
"JOEB": "Joe Biden",
|
||||||
"JOEBIDEN2024 ": "JOEBIDEN2024",
|
"JOEBIDEN2024 ": "JOEBIDEN2024",
|
||||||
|
"JOECOIN": "Joe Coin",
|
||||||
"JOEY": "Joey Inu",
|
"JOEY": "Joey Inu",
|
||||||
"JOGECO": "Jogecodog",
|
"JOGECO": "Jogecodog",
|
||||||
"JOHM": "Johm lemmon",
|
"JOHM": "Johm lemmon",
|
||||||
@ -7556,6 +7600,7 @@
|
|||||||
"KEK": "KekCoin",
|
"KEK": "KekCoin",
|
||||||
"KEKE": "KEK",
|
"KEKE": "KEK",
|
||||||
"KEKEC": "THE BALKAN DWARF",
|
"KEKEC": "THE BALKAN DWARF",
|
||||||
|
"KEKIUS": "Kekius Maximus",
|
||||||
"KEL": "KelVPN",
|
"KEL": "KelVPN",
|
||||||
"KELP": "KELP",
|
"KELP": "KELP",
|
||||||
"KELPE": "Kelp Earned Points",
|
"KELPE": "Kelp Earned Points",
|
||||||
@ -7576,6 +7621,9 @@
|
|||||||
"KET": "KET",
|
"KET": "KET",
|
||||||
"KETAMINE": "Ketamine",
|
"KETAMINE": "Ketamine",
|
||||||
"KETAN": "Ketan",
|
"KETAN": "Ketan",
|
||||||
|
"KEVIN": "Kevin (kevinonbase.xyz)",
|
||||||
|
"KEVINTOKENME": "KEVIN (kevintoken.me)",
|
||||||
|
"KEVINTOKENNET": "Kevin",
|
||||||
"KEX": "Kira Network",
|
"KEX": "Kira Network",
|
||||||
"KEXCOIN": "KexCoin",
|
"KEXCOIN": "KexCoin",
|
||||||
"KEY": "SelfKey",
|
"KEY": "SelfKey",
|
||||||
@ -7605,6 +7653,7 @@
|
|||||||
"KICKS": "GetKicks",
|
"KICKS": "GetKicks",
|
||||||
"KIDEN": "RoboKiden",
|
"KIDEN": "RoboKiden",
|
||||||
"KIF": "KittenFinance",
|
"KIF": "KittenFinance",
|
||||||
|
"KIKI": "Kiki Flaminki",
|
||||||
"KIKO": "KIKO",
|
"KIKO": "KIKO",
|
||||||
"KILLA": "The Bitcoin Killa",
|
"KILLA": "The Bitcoin Killa",
|
||||||
"KILLER": "Fat Cat Killer",
|
"KILLER": "Fat Cat Killer",
|
||||||
@ -7724,6 +7773,7 @@
|
|||||||
"KOGE": "BNB48 Club Token",
|
"KOGE": "BNB48 Club Token",
|
||||||
"KOGECOIN": "KogeCoin.io",
|
"KOGECOIN": "KogeCoin.io",
|
||||||
"KOI": "Koi",
|
"KOI": "Koi",
|
||||||
|
"KOII": "Koii",
|
||||||
"KOIN": "Koinos",
|
"KOIN": "Koinos",
|
||||||
"KOINB": "KoinBülteni Token",
|
"KOINB": "KoinBülteni Token",
|
||||||
"KOINETWORK": "Koi Network",
|
"KOINETWORK": "Koi Network",
|
||||||
@ -7823,6 +7873,7 @@
|
|||||||
"KUBE": "KubeCoin",
|
"KUBE": "KubeCoin",
|
||||||
"KUBO": "KUBO",
|
"KUBO": "KUBO",
|
||||||
"KUBOS": "KubosCoin",
|
"KUBOS": "KubosCoin",
|
||||||
|
"KUDAI": "Kudai",
|
||||||
"KUE": "Kuende",
|
"KUE": "Kuende",
|
||||||
"KUJI": "Kujira",
|
"KUJI": "Kujira",
|
||||||
"KUKU": "KuKu",
|
"KUKU": "KuKu",
|
||||||
@ -7867,6 +7918,7 @@
|
|||||||
"KZC": "KZCash",
|
"KZC": "KZCash",
|
||||||
"KZEN": "Kaizen",
|
"KZEN": "Kaizen",
|
||||||
"L": "L inu",
|
"L": "L inu",
|
||||||
|
"L1": "Lamina1",
|
||||||
"L2": "Leverj Gluon",
|
"L2": "Leverj Gluon",
|
||||||
"L2DAO": "Layer2DAO",
|
"L2DAO": "Layer2DAO",
|
||||||
"L3": "Layer3",
|
"L3": "Layer3",
|
||||||
@ -7928,7 +7980,8 @@
|
|||||||
"LATX": "Latium",
|
"LATX": "Latium",
|
||||||
"LAUGHCOIN": "Laughcoin",
|
"LAUGHCOIN": "Laughcoin",
|
||||||
"LAUNCH": "Launchblock.com",
|
"LAUNCH": "Launchblock.com",
|
||||||
"LAVA": "Lavaswap",
|
"LAVA": "Lava Network",
|
||||||
|
"LAVASWAP": "Lavaswap",
|
||||||
"LAVAX": "LavaX Labs",
|
"LAVAX": "LavaX Labs",
|
||||||
"LAVE": "Lavandos",
|
"LAVE": "Lavandos",
|
||||||
"LAVITA": "Lavita AI",
|
"LAVITA": "Lavita AI",
|
||||||
@ -7992,6 +8045,7 @@
|
|||||||
"LEE": "Love Earn Enjoy",
|
"LEE": "Love Earn Enjoy",
|
||||||
"LEET": "LeetSwap",
|
"LEET": "LeetSwap",
|
||||||
"LEG": "Legia Warsaw Fan Token",
|
"LEG": "Legia Warsaw Fan Token",
|
||||||
|
"LEGEND": "Legend",
|
||||||
"LEGION": "LEGION",
|
"LEGION": "LEGION",
|
||||||
"LEGO": "Lego Coin",
|
"LEGO": "Lego Coin",
|
||||||
"LEIA": "Leia",
|
"LEIA": "Leia",
|
||||||
@ -8093,6 +8147,7 @@
|
|||||||
"LIGHTSPEED": "LightSpeedCoin",
|
"LIGHTSPEED": "LightSpeedCoin",
|
||||||
"LIGMA": "Ligma Node",
|
"LIGMA": "Ligma Node",
|
||||||
"LIGO": "Ligo",
|
"LIGO": "Ligo",
|
||||||
|
"LIHUA": "LIHUA",
|
||||||
"LIKE": "Only1",
|
"LIKE": "Only1",
|
||||||
"LIKEC": "LikeCoin",
|
"LIKEC": "LikeCoin",
|
||||||
"LILA": "LiquidLayer",
|
"LILA": "LiquidLayer",
|
||||||
@ -8100,6 +8155,7 @@
|
|||||||
"LILFLOKI": "Lil Floki",
|
"LILFLOKI": "Lil Floki",
|
||||||
"LILPUMP": "lilpump",
|
"LILPUMP": "lilpump",
|
||||||
"LILY": "LILY-The Gold Digger",
|
"LILY": "LILY-The Gold Digger",
|
||||||
|
"LIMBO": "Limbo",
|
||||||
"LIME": "iMe Lab",
|
"LIME": "iMe Lab",
|
||||||
"LIMEX": "Limestone Network",
|
"LIMEX": "Limestone Network",
|
||||||
"LIMITEDCOIN": "Limited Coin",
|
"LIMITEDCOIN": "Limited Coin",
|
||||||
@ -8167,6 +8223,7 @@
|
|||||||
"LLAND": "Lyfe Land",
|
"LLAND": "Lyfe Land",
|
||||||
"LLG": "Loligo",
|
"LLG": "Loligo",
|
||||||
"LLION": "Lydian Lion",
|
"LLION": "Lydian Lion",
|
||||||
|
"LLM": "Large Language Model Based",
|
||||||
"LLT": "LILLIUS",
|
"LLT": "LILLIUS",
|
||||||
"LM": "LeisureMeta",
|
"LM": "LeisureMeta",
|
||||||
"LMAO": "LMAO Finance",
|
"LMAO": "LMAO Finance",
|
||||||
@ -8366,6 +8423,7 @@
|
|||||||
"LUFFY": "Luffy",
|
"LUFFY": "Luffy",
|
||||||
"LUFFYG": "Luffy G5",
|
"LUFFYG": "Luffy G5",
|
||||||
"LUFFYOLD": "Luffy",
|
"LUFFYOLD": "Luffy",
|
||||||
|
"LUFFYV1": "Luffy v1",
|
||||||
"LUIGI": "Luigi Inu",
|
"LUIGI": "Luigi Inu",
|
||||||
"LUIS": "Tongue Cat",
|
"LUIS": "Tongue Cat",
|
||||||
"LULU": "LULU",
|
"LULU": "LULU",
|
||||||
@ -8394,7 +8452,8 @@
|
|||||||
"LUSH": "Lush AI",
|
"LUSH": "Lush AI",
|
||||||
"LUT": "Cinemadrom",
|
"LUT": "Cinemadrom",
|
||||||
"LUTETIUM": "Lutetium Coin",
|
"LUTETIUM": "Lutetium Coin",
|
||||||
"LUX": "LUXCoin",
|
"LUX": "Lux Token",
|
||||||
|
"LUXCOIN": "LUXCoin",
|
||||||
"LUXO": "Luxo",
|
"LUXO": "Luxo",
|
||||||
"LUXU": "Luxury Travel Token",
|
"LUXU": "Luxury Travel Token",
|
||||||
"LUXY": "Luxy",
|
"LUXY": "Luxy",
|
||||||
@ -8449,6 +8508,7 @@
|
|||||||
"MADAGASCARTOKEN": "Madagascar Token",
|
"MADAGASCARTOKEN": "Madagascar Token",
|
||||||
"MADANA": "MADANA",
|
"MADANA": "MADANA",
|
||||||
"MADC": "MadCoin",
|
"MADC": "MadCoin",
|
||||||
|
"MADCOIN": "MAD",
|
||||||
"MADH": "Madhouse",
|
"MADH": "Madhouse",
|
||||||
"MADOG": "MarvelDoge",
|
"MADOG": "MarvelDoge",
|
||||||
"MADP": "Mad Penguin",
|
"MADP": "Mad Penguin",
|
||||||
@ -8456,13 +8516,14 @@
|
|||||||
"MAEP": "Maester Protocol",
|
"MAEP": "Maester Protocol",
|
||||||
"MAF": "MetaMAFIA",
|
"MAF": "MetaMAFIA",
|
||||||
"MAG": "Magnify Cash",
|
"MAG": "Magnify Cash",
|
||||||
"MAGA": "MAGA Hat",
|
"MAGA": "MAGA",
|
||||||
"MAGA2024": "MAGA2024",
|
"MAGA2024": "MAGA2024",
|
||||||
"MAGAA": "MAGA AGAIN",
|
"MAGAA": "MAGA AGAIN",
|
||||||
"MAGAC": "MAGA CAT",
|
"MAGAC": "MAGA CAT",
|
||||||
"MAGACA": "MAGA CAT",
|
"MAGACA": "MAGA CAT",
|
||||||
"MAGACAT": "MAGACAT",
|
"MAGACAT": "MAGACAT",
|
||||||
"MAGADOGE": "MAGA DOGE",
|
"MAGADOGE": "MAGA DOGE",
|
||||||
|
"MAGAHAT": "MAGA Hat",
|
||||||
"MAGAIBA": "Magaiba",
|
"MAGAIBA": "Magaiba",
|
||||||
"MAGAN": "Maganomics On Solana",
|
"MAGAN": "Maganomics On Solana",
|
||||||
"MAGANOMICS": "Maganomics",
|
"MAGANOMICS": "Maganomics",
|
||||||
@ -8577,6 +8638,7 @@
|
|||||||
"MATAR": "MATAR AI",
|
"MATAR": "MATAR AI",
|
||||||
"MATCH": "Matching Game",
|
"MATCH": "Matching Game",
|
||||||
"MATE": "Mate",
|
"MATE": "Mate",
|
||||||
|
"MATES": "MATES",
|
||||||
"MATH": "MATH",
|
"MATH": "MATH",
|
||||||
"MATIC": "Polygon",
|
"MATIC": "Polygon",
|
||||||
"MATICX": "Stader MaticX",
|
"MATICX": "Stader MaticX",
|
||||||
@ -8607,6 +8669,7 @@
|
|||||||
"MAZI": "MaziMatic",
|
"MAZI": "MaziMatic",
|
||||||
"MAZZE": "Mazze",
|
"MAZZE": "Mazze",
|
||||||
"MB": "MineBee",
|
"MB": "MineBee",
|
||||||
|
"MB28": "MBridge28",
|
||||||
"MB4": "Matthew Box 404",
|
"MB4": "Matthew Box 404",
|
||||||
"MB8": "MB8 Coin",
|
"MB8": "MB8 Coin",
|
||||||
"MBAG": "MoonBag",
|
"MBAG": "MoonBag",
|
||||||
@ -8741,7 +8804,8 @@
|
|||||||
"MEI": "Mei Solutions",
|
"MEI": "Mei Solutions",
|
||||||
"MEIZHU": "GUANGZHOU ZOO NEW BABY PANDA",
|
"MEIZHU": "GUANGZHOU ZOO NEW BABY PANDA",
|
||||||
"MEL": "MELX",
|
"MEL": "MELX",
|
||||||
"MELANIA": "Melania Trump",
|
"MELANIA": "Melania Meme",
|
||||||
|
"MELANIATRUMP": "Melania Trump",
|
||||||
"MELB": "Minelab",
|
"MELB": "Minelab",
|
||||||
"MELD": "MELD",
|
"MELD": "MELD",
|
||||||
"MELI": "Meli Games",
|
"MELI": "Meli Games",
|
||||||
@ -8819,6 +8883,7 @@
|
|||||||
"METAF": "MetaFastest",
|
"METAF": "MetaFastest",
|
||||||
"METAG": "MetagamZ",
|
"METAG": "MetagamZ",
|
||||||
"METAGEAR": "MetaGear",
|
"METAGEAR": "MetaGear",
|
||||||
|
"METAIVERSE": "MetAIverse",
|
||||||
"METAL": "Metal Blockchain",
|
"METAL": "Metal Blockchain",
|
||||||
"METALCOIN": "MetalCoin",
|
"METALCOIN": "MetalCoin",
|
||||||
"METAMEME": "met a meta metameme",
|
"METAMEME": "met a meta metameme",
|
||||||
@ -9732,6 +9797,7 @@
|
|||||||
"NEXXO": "Nexxo",
|
"NEXXO": "Nexxo",
|
||||||
"NEZHA": "NezhaToken",
|
"NEZHA": "NezhaToken",
|
||||||
"NFAI": "Not Financial Advice",
|
"NFAI": "Not Financial Advice",
|
||||||
|
"NFAIV1": "Not Financial Advice v1",
|
||||||
"NFCR": "NFCore",
|
"NFCR": "NFCore",
|
||||||
"NFD": "Feisty Doge NFT",
|
"NFD": "Feisty Doge NFT",
|
||||||
"NFE": "Edu3Labs",
|
"NFE": "Edu3Labs",
|
||||||
@ -9857,6 +9923,7 @@
|
|||||||
"NOBS": "No BS Crypto",
|
"NOBS": "No BS Crypto",
|
||||||
"NOCHILL": "AVAX HAS NO CHILL",
|
"NOCHILL": "AVAX HAS NO CHILL",
|
||||||
"NODE": "Whole Network",
|
"NODE": "Whole Network",
|
||||||
|
"NODESYNAPSE": "NodeSynapse",
|
||||||
"NODIDDY": "NODIDDY",
|
"NODIDDY": "NODIDDY",
|
||||||
"NODIS": "Nodis",
|
"NODIS": "Nodis",
|
||||||
"NODL": "Nodle Network",
|
"NODL": "Nodle Network",
|
||||||
@ -9928,7 +9995,7 @@
|
|||||||
"NRV": "Nerve Finance",
|
"NRV": "Nerve Finance",
|
||||||
"NRVE": "Narrative",
|
"NRVE": "Narrative",
|
||||||
"NRX": "Neironix",
|
"NRX": "Neironix",
|
||||||
"NS": "NodeSynapse",
|
"NS": "SuiNS Token",
|
||||||
"NS2DRP": "New Silver Series 2 DROP",
|
"NS2DRP": "New Silver Series 2 DROP",
|
||||||
"NSBT": "Neutrino Token",
|
"NSBT": "Neutrino Token",
|
||||||
"NSD": "Nasdacoin",
|
"NSD": "Nasdacoin",
|
||||||
@ -10620,7 +10687,8 @@
|
|||||||
"PEGAMAGA": "Pepe Maga",
|
"PEGAMAGA": "Pepe Maga",
|
||||||
"PEGG": "PokPok Golden Egg",
|
"PEGG": "PokPok Golden Egg",
|
||||||
"PEGS": "PegShares",
|
"PEGS": "PegShares",
|
||||||
"PEIPEI": "PEIPEI",
|
"PEIPEI": "PeiPei",
|
||||||
|
"PEIPEICN": "PEIPEI",
|
||||||
"PEKA": "PEKA",
|
"PEKA": "PEKA",
|
||||||
"PEKC": "Peacock Coin",
|
"PEKC": "Peacock Coin",
|
||||||
"PEKINU": "PEKI INU",
|
"PEKINU": "PEKI INU",
|
||||||
@ -10891,6 +10959,7 @@
|
|||||||
"PLANET": "PLANET",
|
"PLANET": "PLANET",
|
||||||
"PLANETCOIN": "PlanetCoin",
|
"PLANETCOIN": "PlanetCoin",
|
||||||
"PLANETS": "PlanetWatch",
|
"PLANETS": "PlanetWatch",
|
||||||
|
"PLANT": "Plant",
|
||||||
"PLASTIK": "Plastiks",
|
"PLASTIK": "Plastiks",
|
||||||
"PLAT": "BitGuild PLAT",
|
"PLAT": "BitGuild PLAT",
|
||||||
"PLATC": "PlatinCoin",
|
"PLATC": "PlatinCoin",
|
||||||
@ -10941,6 +11010,7 @@
|
|||||||
"PLU": "Pluton",
|
"PLU": "Pluton",
|
||||||
"PLUG": "PL^Gnet",
|
"PLUG": "PL^Gnet",
|
||||||
"PLUGCN": "Plug Chain",
|
"PLUGCN": "Plug Chain",
|
||||||
|
"PLUME": "Plume",
|
||||||
"PLUP": "PoolUp",
|
"PLUP": "PoolUp",
|
||||||
"PLURA": "PluraCoin",
|
"PLURA": "PluraCoin",
|
||||||
"PLUS1": "PlusOneCoin",
|
"PLUS1": "PlusOneCoin",
|
||||||
@ -11118,6 +11188,7 @@
|
|||||||
"PPAY": "Plasma Finance",
|
"PPAY": "Plasma Finance",
|
||||||
"PPBLZ": "Pepemon Pepeballs",
|
"PPBLZ": "Pepemon Pepeballs",
|
||||||
"PPC": "PeerCoin",
|
"PPC": "PeerCoin",
|
||||||
|
"PPCOIN": "Project Plutus",
|
||||||
"PPFT": "Papparico Finance",
|
"PPFT": "Papparico Finance",
|
||||||
"PPI": "Primpy",
|
"PPI": "Primpy",
|
||||||
"PPIZZA": "P Pizza",
|
"PPIZZA": "P Pizza",
|
||||||
@ -11285,6 +11356,7 @@
|
|||||||
"PUMP": "PUMP",
|
"PUMP": "PUMP",
|
||||||
"PUMPBTC": "pumpBTC",
|
"PUMPBTC": "pumpBTC",
|
||||||
"PUMPFUNBAN": "Pump Fun Ban",
|
"PUMPFUNBAN": "Pump Fun Ban",
|
||||||
|
"PUMPTRUMP": "PUMP TRUMP",
|
||||||
"PUN": "Punkko",
|
"PUN": "Punkko",
|
||||||
"PUNCH": "PUNCHWORD",
|
"PUNCH": "PUNCHWORD",
|
||||||
"PUNDIX": "Pundi X",
|
"PUNDIX": "Pundi X",
|
||||||
@ -11360,6 +11432,7 @@
|
|||||||
"PYRV1": "Vulcan Forged v1",
|
"PYRV1": "Vulcan Forged v1",
|
||||||
"PYT": "Payther",
|
"PYT": "Payther",
|
||||||
"PYTH": "Pyth Network",
|
"PYTH": "Pyth Network",
|
||||||
|
"PYTHIA": "Pythia",
|
||||||
"PYUSD": "PayPal USD",
|
"PYUSD": "PayPal USD",
|
||||||
"PZETH": "pzETH",
|
"PZETH": "pzETH",
|
||||||
"PZM": "Prizm",
|
"PZM": "Prizm",
|
||||||
@ -11683,6 +11756,7 @@
|
|||||||
"RENQ": "Renq Finance",
|
"RENQ": "Renq Finance",
|
||||||
"RENS": "Rens",
|
"RENS": "Rens",
|
||||||
"RENT": "Rent AI",
|
"RENT": "Rent AI",
|
||||||
|
"RENTA": "Renta Network",
|
||||||
"RENTBE": "Rentberry",
|
"RENTBE": "Rentberry",
|
||||||
"REP": "Augur",
|
"REP": "Augur",
|
||||||
"REPE": "Resistance Pepe",
|
"REPE": "Resistance Pepe",
|
||||||
@ -11766,6 +11840,7 @@
|
|||||||
"RIDEMY": "Ride My Car",
|
"RIDEMY": "Ride My Car",
|
||||||
"RIF": "RIF Token",
|
"RIF": "RIF Token",
|
||||||
"RIF3": "MetaTariffv3",
|
"RIF3": "MetaTariffv3",
|
||||||
|
"RIFA": "Rifampicin",
|
||||||
"RIFI": "Rikkei Finance",
|
"RIFI": "Rikkei Finance",
|
||||||
"RIGEL": "Rigel Finance",
|
"RIGEL": "Rigel Finance",
|
||||||
"RIK": "RIKEZA",
|
"RIK": "RIKEZA",
|
||||||
@ -11952,6 +12027,7 @@
|
|||||||
"RSUN": "RisingSun",
|
"RSUN": "RisingSun",
|
||||||
"RSUSHI": "Sushi (Rainbow Bridge)",
|
"RSUSHI": "Sushi (Rainbow Bridge)",
|
||||||
"RSV": "Reserve",
|
"RSV": "Reserve",
|
||||||
|
"RSVV1": "Reserve v1",
|
||||||
"RSWETH": "Restaked Swell Ethereum",
|
"RSWETH": "Restaked Swell Ethereum",
|
||||||
"RT2": "RotoCoin",
|
"RT2": "RotoCoin",
|
||||||
"RTB": "AB-CHAIN",
|
"RTB": "AB-CHAIN",
|
||||||
@ -11999,6 +12075,8 @@
|
|||||||
"RUX": "Gacrux NFT",
|
"RUX": "Gacrux NFT",
|
||||||
"RVC": "Revenue Coin",
|
"RVC": "Revenue Coin",
|
||||||
"RVF": "RocketX exchange",
|
"RVF": "RocketX exchange",
|
||||||
|
"RVFV1": "RocketX exchange v1",
|
||||||
|
"RVFV2": "RocketX exchange v2",
|
||||||
"RVL": "Revolotto",
|
"RVL": "Revolotto",
|
||||||
"RVLNG": "RevolutionGames",
|
"RVLNG": "RevolutionGames",
|
||||||
"RVLT": "Revolt 2 Earn",
|
"RVLT": "Revolt 2 Earn",
|
||||||
@ -12170,7 +12248,7 @@
|
|||||||
"SBTC": "Super Bitcoin",
|
"SBTC": "Super Bitcoin",
|
||||||
"SC": "Siacoin",
|
"SC": "Siacoin",
|
||||||
"SC20": "Shine Chain",
|
"SC20": "Shine Chain",
|
||||||
"SCA": "SiaClassic",
|
"SCA": "Scallop",
|
||||||
"SCALE": "Scalia Infrastructure",
|
"SCALE": "Scalia Infrastructure",
|
||||||
"SCAM": "Scam Coin",
|
"SCAM": "Scam Coin",
|
||||||
"SCAMP": "ScamPump",
|
"SCAMP": "ScamPump",
|
||||||
@ -12244,8 +12322,10 @@
|
|||||||
"SDAO": "SingularityDAO",
|
"SDAO": "SingularityDAO",
|
||||||
"SDC": "ShadowCash",
|
"SDC": "ShadowCash",
|
||||||
"SDCRV": "Stake DAO CRV",
|
"SDCRV": "Stake DAO CRV",
|
||||||
|
"SDEUSD": "Staked deUSD",
|
||||||
"SDEX": "SmarDex",
|
"SDEX": "SmarDex",
|
||||||
"SDL": "Saddle Finance",
|
"SDL": "Saddle Finance",
|
||||||
|
"SDM": "Shieldeum",
|
||||||
"SDME": "SDME",
|
"SDME": "SDME",
|
||||||
"SDN": "Shiden Network",
|
"SDN": "Shiden Network",
|
||||||
"SDO": "TheSolanDAO",
|
"SDO": "TheSolanDAO",
|
||||||
@ -12311,6 +12391,7 @@
|
|||||||
"SENSOV1": "SENSO v1",
|
"SENSOV1": "SENSO v1",
|
||||||
"SENSUS": "Sensus",
|
"SENSUS": "Sensus",
|
||||||
"SENT": "Sentinel",
|
"SENT": "Sentinel",
|
||||||
|
"SENTAI": "SentAI",
|
||||||
"SENTI": "Sentinel Bot Ai",
|
"SENTI": "Sentinel Bot Ai",
|
||||||
"SENTR": "Sentre Protocol",
|
"SENTR": "Sentre Protocol",
|
||||||
"SEON": "Seedon",
|
"SEON": "Seedon",
|
||||||
@ -12519,6 +12600,7 @@
|
|||||||
"SHX": "Stronghold Token",
|
"SHX": "Stronghold Token",
|
||||||
"SHYTCOIN": "ShytCoin",
|
"SHYTCOIN": "ShytCoin",
|
||||||
"SI": "Siren",
|
"SI": "Siren",
|
||||||
|
"SIACLASSIC": "SiaClassic",
|
||||||
"SIB": "SibCoin",
|
"SIB": "SibCoin",
|
||||||
"SIBA": "SibaInu",
|
"SIBA": "SibaInu",
|
||||||
"SIC": "Swisscoin",
|
"SIC": "Swisscoin",
|
||||||
@ -12552,6 +12634,7 @@
|
|||||||
"SILVERSTAND": "Silver Standard",
|
"SILVERSTAND": "Silver Standard",
|
||||||
"SILVERWAY": "Silverway",
|
"SILVERWAY": "Silverway",
|
||||||
"SIM": "Simpson",
|
"SIM": "Simpson",
|
||||||
|
"SIMBA": "SIMBA The Sloth",
|
||||||
"SIMP": "SO-COL",
|
"SIMP": "SO-COL",
|
||||||
"SIMPLE": "SimpleChain",
|
"SIMPLE": "SimpleChain",
|
||||||
"SIMPS": "Simpson MAGA",
|
"SIMPS": "Simpson MAGA",
|
||||||
@ -12715,6 +12798,7 @@
|
|||||||
"SMLY": "SmileyCoin",
|
"SMLY": "SmileyCoin",
|
||||||
"SMM": "TrendingTool.io",
|
"SMM": "TrendingTool.io",
|
||||||
"SMOG": "Smog",
|
"SMOG": "Smog",
|
||||||
|
"SMOK": "Smoking Chicken Fish",
|
||||||
"SMOKE": "Smoke",
|
"SMOKE": "Smoke",
|
||||||
"SMOL": "Smolcoin",
|
"SMOL": "Smolcoin",
|
||||||
"SMOLE": "smolecoin",
|
"SMOLE": "smolecoin",
|
||||||
@ -12741,6 +12825,7 @@
|
|||||||
"SNA": "SUKUYANA",
|
"SNA": "SUKUYANA",
|
||||||
"SNAC": "SnackboxAI",
|
"SNAC": "SnackboxAI",
|
||||||
"SNACK": "Crypto Snack",
|
"SNACK": "Crypto Snack",
|
||||||
|
"SNAI": "SwarmNode.ai",
|
||||||
"SNAIL": "SnailBrook",
|
"SNAIL": "SnailBrook",
|
||||||
"SNAKE": "snake",
|
"SNAKE": "snake",
|
||||||
"SNAKES": "Snakes Game",
|
"SNAKES": "Snakes Game",
|
||||||
@ -12817,7 +12902,8 @@
|
|||||||
"SOFTCO": "SOFT COQ INU",
|
"SOFTCO": "SOFT COQ INU",
|
||||||
"SOH": "Stohn Coin",
|
"SOH": "Stohn Coin",
|
||||||
"SOHOT": "SOHOTRN",
|
"SOHOT": "SOHOTRN",
|
||||||
"SOIL": "SoilCoin",
|
"SOIL": "Soil",
|
||||||
|
"SOILCOIN": "SoilCoin",
|
||||||
"SOJ": "Sojourn Coin",
|
"SOJ": "Sojourn Coin",
|
||||||
"SOK": "shoki",
|
"SOK": "shoki",
|
||||||
"SOKU": "Soku Swap",
|
"SOKU": "Soku Swap",
|
||||||
@ -12877,6 +12963,7 @@
|
|||||||
"SOLSPONGE": "Solsponge",
|
"SOLSPONGE": "Solsponge",
|
||||||
"SOLT": "Soltalk AI",
|
"SOLT": "Soltalk AI",
|
||||||
"SOLTR": "SolTrump",
|
"SOLTR": "SolTrump",
|
||||||
|
"SOLV": "Solv Protocol",
|
||||||
"SOLVBTC": "Solv Protocol SolvBTC",
|
"SOLVBTC": "Solv Protocol SolvBTC",
|
||||||
"SOLVBTCBBN": "Solv Protocol SolvBTC.BBN",
|
"SOLVBTCBBN": "Solv Protocol SolvBTC.BBN",
|
||||||
"SOLVBTCCORE": "Solv Protocol SolvBTC.CORE",
|
"SOLVBTCCORE": "Solv Protocol SolvBTC.CORE",
|
||||||
@ -12971,6 +13058,7 @@
|
|||||||
"SPENDC": "SpendCoin",
|
"SPENDC": "SpendCoin",
|
||||||
"SPENT": "Espento",
|
"SPENT": "Espento",
|
||||||
"SPEPE": "SolanaPepe",
|
"SPEPE": "SolanaPepe",
|
||||||
|
"SPERG": "Bloomsperg Terminal",
|
||||||
"SPEX": "StepEx",
|
"SPEX": "StepEx",
|
||||||
"SPF": "SportyCo",
|
"SPF": "SportyCo",
|
||||||
"SPFC": "São Paulo FC Fan Token",
|
"SPFC": "São Paulo FC Fan Token",
|
||||||
@ -13040,6 +13128,7 @@
|
|||||||
"SPY": "Smarty Pay",
|
"SPY": "Smarty Pay",
|
||||||
"SPYRO": "SPYRO",
|
"SPYRO": "SPYRO",
|
||||||
"SQAT": "Syndiqate",
|
"SQAT": "Syndiqate",
|
||||||
|
"SQD": "SQD",
|
||||||
"SQG": "Squid Token",
|
"SQG": "Squid Token",
|
||||||
"SQGROW": "SquidGrow",
|
"SQGROW": "SquidGrow",
|
||||||
"SQL": "Squall Coin",
|
"SQL": "Squall Coin",
|
||||||
@ -13296,6 +13385,7 @@
|
|||||||
"SUIA": "SUIA",
|
"SUIA": "SUIA",
|
||||||
"SUIAI": "SUI Agents",
|
"SUIAI": "SUI Agents",
|
||||||
"SUIB": "Suiba Inu",
|
"SUIB": "Suiba Inu",
|
||||||
|
"SUIDEPIN": "Sui DePIN",
|
||||||
"SUIJAK": "Suijak",
|
"SUIJAK": "Suijak",
|
||||||
"SUILAMA": "Suilama",
|
"SUILAMA": "Suilama",
|
||||||
"SUIMAN": "Suiman",
|
"SUIMAN": "Suiman",
|
||||||
@ -13385,6 +13475,7 @@
|
|||||||
"SWAPP": "SWAPP Protocol",
|
"SWAPP": "SWAPP Protocol",
|
||||||
"SWAPZ": "SWAPZ.app",
|
"SWAPZ": "SWAPZ.app",
|
||||||
"SWARM": "SwarmCoin",
|
"SWARM": "SwarmCoin",
|
||||||
|
"SWARMS": "Swarms",
|
||||||
"SWASH": "Swash",
|
"SWASH": "Swash",
|
||||||
"SWAY": "Sway Social",
|
"SWAY": "Sway Social",
|
||||||
"SWBTC": "Swell Restaked BTC",
|
"SWBTC": "Swell Restaked BTC",
|
||||||
@ -13449,6 +13540,7 @@
|
|||||||
"SYLO": "Sylo",
|
"SYLO": "Sylo",
|
||||||
"SYLV": "Sylvester",
|
"SYLV": "Sylvester",
|
||||||
"SYM": "SymVerse",
|
"SYM": "SymVerse",
|
||||||
|
"SYMP": "Sympson AI",
|
||||||
"SYN": "Synapse",
|
"SYN": "Synapse",
|
||||||
"SYNC": "Syncus",
|
"SYNC": "Syncus",
|
||||||
"SYNCC": "SyncCoin",
|
"SYNCC": "SyncCoin",
|
||||||
@ -13462,7 +13554,8 @@
|
|||||||
"SYNR": "MOBLAND",
|
"SYNR": "MOBLAND",
|
||||||
"SYNT": "Synthetix Network",
|
"SYNT": "Synthetix Network",
|
||||||
"SYNTE": "Synternet",
|
"SYNTE": "Synternet",
|
||||||
"SYNTH": "Synthswap",
|
"SYNTH": "SYNTHR",
|
||||||
|
"SYNTHSWAP": "Synthswap",
|
||||||
"SYNX": "Syndicate",
|
"SYNX": "Syndicate",
|
||||||
"SYPOOL": "Sypool",
|
"SYPOOL": "Sypool",
|
||||||
"SYRUP": "Syrup",
|
"SYRUP": "Syrup",
|
||||||
@ -13679,7 +13772,6 @@
|
|||||||
"THAVAGE": "Mike Tython",
|
"THAVAGE": "Mike Tython",
|
||||||
"THC": "The Hempcoin",
|
"THC": "The Hempcoin",
|
||||||
"THD": "Trump Harris Debate",
|
"THD": "Trump Harris Debate",
|
||||||
"THE": "The Protocol",
|
|
||||||
"THE9": "THE9",
|
"THE9": "THE9",
|
||||||
"THEAICOIN": "AI",
|
"THEAICOIN": "AI",
|
||||||
"THEB": "The Boys Club",
|
"THEB": "The Boys Club",
|
||||||
@ -13697,7 +13789,9 @@
|
|||||||
"THEN": "THENA",
|
"THEN": "THENA",
|
||||||
"THEO": "Theopetra",
|
"THEO": "Theopetra",
|
||||||
"THEOS": "Theos",
|
"THEOS": "Theos",
|
||||||
|
"THEP": "The Protocol",
|
||||||
"THES": "The Standard Protocol (USDS)",
|
"THES": "The Standard Protocol (USDS)",
|
||||||
|
"THESTANDARD": "Standard Token",
|
||||||
"THETA": "Theta Network",
|
"THETA": "Theta Network",
|
||||||
"THETAN": "Thetan Coin",
|
"THETAN": "Thetan Coin",
|
||||||
"THETRIBE": "The Tribe",
|
"THETRIBE": "The Tribe",
|
||||||
@ -13751,7 +13845,8 @@
|
|||||||
"TIM": "TIMTIM GAMES",
|
"TIM": "TIMTIM GAMES",
|
||||||
"TIME": "Chrono.tech",
|
"TIME": "Chrono.tech",
|
||||||
"TIMES": "DARKTIMES",
|
"TIMES": "DARKTIMES",
|
||||||
"TIMI": "Timicoin",
|
"TIMI": "This Is My Iguana",
|
||||||
|
"TIMICOIN": "Timicoin",
|
||||||
"TIN": "Token IN",
|
"TIN": "Token IN",
|
||||||
"TINC": "Tiny Coin",
|
"TINC": "Tiny Coin",
|
||||||
"TINKU": "TinkuCoin",
|
"TINKU": "TinkuCoin",
|
||||||
@ -14023,7 +14118,7 @@
|
|||||||
"TRUM": "TrumpBucks",
|
"TRUM": "TrumpBucks",
|
||||||
"TRUMAGA": "TrumpMAGA",
|
"TRUMAGA": "TrumpMAGA",
|
||||||
"TRUMATIC": "TruFin Staked MATIC",
|
"TRUMATIC": "TruFin Staked MATIC",
|
||||||
"TRUMP": "MAGA",
|
"TRUMP": "OFFICIAL TRUMP",
|
||||||
"TRUMP2": "Trump2024",
|
"TRUMP2": "Trump2024",
|
||||||
"TRUMP2024": "Donald Trump",
|
"TRUMP2024": "Donald Trump",
|
||||||
"TRUMP3": "Trump MP3",
|
"TRUMP3": "Trump MP3",
|
||||||
@ -14048,7 +14143,8 @@
|
|||||||
"TRUMPHAT": "Trump Hat",
|
"TRUMPHAT": "Trump Hat",
|
||||||
"TRUMPINU": "Trump Inu",
|
"TRUMPINU": "Trump Inu",
|
||||||
"TRUMPJ": "TRUMPJR",
|
"TRUMPJ": "TRUMPJR",
|
||||||
"TRUMPJR": "TrumpJr",
|
"TRUMPJR": "OFFICIAL TRUMP JR",
|
||||||
|
"TRUMPJRVIP": "TrumpJr",
|
||||||
"TRUMPM": "TRUMP MAGA PRESIDENT",
|
"TRUMPM": "TRUMP MAGA PRESIDENT",
|
||||||
"TRUMPMA": "TRUMP MAGA SUPER",
|
"TRUMPMA": "TRUMP MAGA SUPER",
|
||||||
"TRUMPMAGA": "President Trump MAGA",
|
"TRUMPMAGA": "President Trump MAGA",
|
||||||
@ -14094,6 +14190,7 @@
|
|||||||
"TSLT": "Tamkin",
|
"TSLT": "Tamkin",
|
||||||
"TSN": "Tsunami Exchange Token",
|
"TSN": "Tsunami Exchange Token",
|
||||||
"TSR": "Tesra",
|
"TSR": "Tesra",
|
||||||
|
"TST": "Teleport System Token",
|
||||||
"TSUBASAUT": "TSUBASA Utility Token",
|
"TSUBASAUT": "TSUBASA Utility Token",
|
||||||
"TSUGT": "Captain Tsubasa",
|
"TSUGT": "Captain Tsubasa",
|
||||||
"TSUJI": "Tsutsuji",
|
"TSUJI": "Tsutsuji",
|
||||||
@ -14234,6 +14331,7 @@
|
|||||||
"UETL": "Useless Eth Token Lite",
|
"UETL": "Useless Eth Token Lite",
|
||||||
"UFARM": "UniFarm",
|
"UFARM": "UniFarm",
|
||||||
"UFC": "Union Fair Coin",
|
"UFC": "Union Fair Coin",
|
||||||
|
"UFD": "Unicorn Fart Dust",
|
||||||
"UFFYI": "Unlimited FiscusFYI",
|
"UFFYI": "Unlimited FiscusFYI",
|
||||||
"UFI": "PureFi",
|
"UFI": "PureFi",
|
||||||
"UFO": "UFO Gaming",
|
"UFO": "UFO Gaming",
|
||||||
@ -14306,6 +14404,7 @@
|
|||||||
"UNICORN": "UNICORN Token",
|
"UNICORN": "UNICORN Token",
|
||||||
"UNIDEXAI": "UniDexAI",
|
"UNIDEXAI": "UniDexAI",
|
||||||
"UNIDX": "UniDex",
|
"UNIDX": "UniDex",
|
||||||
|
"UNIDXV1": "UniDex v1",
|
||||||
"UNIE": "Uniswap Protocol Token (Avalanche Bridge)",
|
"UNIE": "Uniswap Protocol Token (Avalanche Bridge)",
|
||||||
"UNIETH": "Universal ETH",
|
"UNIETH": "Universal ETH",
|
||||||
"UNIFY": "Unify",
|
"UNIFY": "Unify",
|
||||||
@ -14376,6 +14475,7 @@
|
|||||||
"USCC": "USC",
|
"USCC": "USC",
|
||||||
"USCOIN": "USCoin",
|
"USCOIN": "USCoin",
|
||||||
"USD0": "Usual",
|
"USD0": "Usual",
|
||||||
|
"USD1": "USD1",
|
||||||
"USD3": "Web 3 Dollar",
|
"USD3": "Web 3 Dollar",
|
||||||
"USDA": "USDA",
|
"USDA": "USDA",
|
||||||
"USDAP": "Bond Appetite USD",
|
"USDAP": "Bond Appetite USD",
|
||||||
@ -14447,6 +14547,7 @@
|
|||||||
"USTCW": "TerraClassicUSD Wormhole",
|
"USTCW": "TerraClassicUSD Wormhole",
|
||||||
"USTX": "UpStableToken",
|
"USTX": "UpStableToken",
|
||||||
"USUAL": "Usual",
|
"USUAL": "Usual",
|
||||||
|
"USUALX": "USUALx",
|
||||||
"USV": "Universal Store of Value",
|
"USV": "Universal Store of Value",
|
||||||
"USX": "USX Quantum",
|
"USX": "USX Quantum",
|
||||||
"USYC": "Hashnote USYC",
|
"USYC": "Hashnote USYC",
|
||||||
@ -15194,6 +15295,7 @@
|
|||||||
"WORX": "Worx",
|
"WORX": "Worx",
|
||||||
"WOS": "Wolf Of Solana",
|
"WOS": "Wolf Of Solana",
|
||||||
"WOT": "World Of Trump",
|
"WOT": "World Of Trump",
|
||||||
|
"WOULD": "would",
|
||||||
"WOW": "WOWswap",
|
"WOW": "WOWswap",
|
||||||
"WOWS": "Wolves of Wall Street",
|
"WOWS": "Wolves of Wall Street",
|
||||||
"WOZX": "Efforce",
|
"WOZX": "Efforce",
|
||||||
@ -15241,6 +15343,7 @@
|
|||||||
"WSTORV1": "StorageChain v1",
|
"WSTORV1": "StorageChain v1",
|
||||||
"WSTR": "Wrapped Star",
|
"WSTR": "Wrapped Star",
|
||||||
"WSTUSDT": "wstUSDT",
|
"WSTUSDT": "wstUSDT",
|
||||||
|
"WSTUSR": "Resolv wstUSR",
|
||||||
"WSX": "WeAreSatoshi",
|
"WSX": "WeAreSatoshi",
|
||||||
"WT": "WeToken",
|
"WT": "WeToken",
|
||||||
"WTAO": "Wrapped TAO",
|
"WTAO": "Wrapped TAO",
|
||||||
@ -15260,6 +15363,7 @@
|
|||||||
"WUF": "WUFFI",
|
"WUF": "WUFFI",
|
||||||
"WUK": "WUKONG",
|
"WUK": "WUKONG",
|
||||||
"WUKONG": "Sun Wukong",
|
"WUKONG": "Sun Wukong",
|
||||||
|
"WULFY": "Wulfy",
|
||||||
"WUSD": "Worldwide USD",
|
"WUSD": "Worldwide USD",
|
||||||
"WUST": "Wrapped UST Token",
|
"WUST": "Wrapped UST Token",
|
||||||
"WVG0": "Wrapped Virgin Gen-0 CryptoKittties",
|
"WVG0": "Wrapped Virgin Gen-0 CryptoKittties",
|
||||||
@ -15721,6 +15825,8 @@
|
|||||||
"YIELD": "Yield Protocol",
|
"YIELD": "Yield Protocol",
|
||||||
"YIELDX": "Yield Finance",
|
"YIELDX": "Yield Finance",
|
||||||
"YIKES": "Yikes Dog",
|
"YIKES": "Yikes Dog",
|
||||||
|
"YILONG": "Yi Long Ma",
|
||||||
|
"YILONGMA": "Chinese Elon Musk",
|
||||||
"YIN": "YIN Finance",
|
"YIN": "YIN Finance",
|
||||||
"YINBI": "Yinbi",
|
"YINBI": "Yinbi",
|
||||||
"YLAY": "Yelay",
|
"YLAY": "Yelay",
|
||||||
@ -15729,6 +15835,7 @@
|
|||||||
"YLDY": "Yieldly",
|
"YLDY": "Yieldly",
|
||||||
"YMC": "YamahaCoin",
|
"YMC": "YamahaCoin",
|
||||||
"YMS": "Yeni Malatyaspor Token",
|
"YMS": "Yeni Malatyaspor Token",
|
||||||
|
"YNE": "yesnoerror",
|
||||||
"YNETH": "YieldNest Restaked ETH",
|
"YNETH": "YieldNest Restaked ETH",
|
||||||
"YO": "Yobit Token",
|
"YO": "Yobit Token",
|
||||||
"YOBASE": "All Your Base",
|
"YOBASE": "All Your Base",
|
||||||
@ -15920,6 +16027,7 @@
|
|||||||
"ZKDX": "ZKDX",
|
"ZKDX": "ZKDX",
|
||||||
"ZKE": "zkEra Finance",
|
"ZKE": "zkEra Finance",
|
||||||
"ZKEVM": "zkEVMChain (BSC)",
|
"ZKEVM": "zkEVMChain (BSC)",
|
||||||
|
"ZKEX": "zkExchange",
|
||||||
"ZKF": "ZKFair",
|
"ZKF": "ZKFair",
|
||||||
"ZKGROK": "ZKGROK",
|
"ZKGROK": "ZKGROK",
|
||||||
"ZKGUN": "zkGUN",
|
"ZKGUN": "zkGUN",
|
||||||
|
@ -29,6 +29,7 @@ import { isISIN } from 'class-validator';
|
|||||||
import { countries } from 'countries-list';
|
import { countries } from 'countries-list';
|
||||||
import {
|
import {
|
||||||
addDays,
|
addDays,
|
||||||
|
addYears,
|
||||||
format,
|
format,
|
||||||
isAfter,
|
isAfter,
|
||||||
isBefore,
|
isBefore,
|
||||||
@ -123,6 +124,19 @@ export class FinancialModelingPrepService implements DataProviderInterface {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const [etfInformation] = await fetch(
|
||||||
|
`${this.getUrl({ version: 4 })}/etf-info?symbol=${symbol}&apikey=${this.apiKey}`,
|
||||||
|
{
|
||||||
|
signal: AbortSignal.timeout(
|
||||||
|
this.configurationService.get('REQUEST_TIMEOUT')
|
||||||
|
)
|
||||||
|
}
|
||||||
|
).then((res) => res.json());
|
||||||
|
|
||||||
|
if (etfInformation.website) {
|
||||||
|
response.url = etfInformation.website;
|
||||||
|
}
|
||||||
|
|
||||||
const [portfolioDate] = await fetch(
|
const [portfolioDate] = await fetch(
|
||||||
`${this.getUrl({ version: 4 })}/etf-holdings/portfolio-date?symbol=${symbol}&apikey=${this.apiKey}`,
|
`${this.getUrl({ version: 4 })}/etf-holdings/portfolio-date?symbol=${symbol}&apikey=${this.apiKey}`,
|
||||||
{
|
{
|
||||||
@ -273,30 +287,44 @@ export class FinancialModelingPrepService implements DataProviderInterface {
|
|||||||
}: GetHistoricalParams): Promise<{
|
}: GetHistoricalParams): Promise<{
|
||||||
[symbol: string]: { [date: string]: IDataProviderHistoricalResponse };
|
[symbol: string]: { [date: string]: IDataProviderHistoricalResponse };
|
||||||
}> {
|
}> {
|
||||||
|
const MAX_YEARS_PER_REQUEST = 5;
|
||||||
|
const result: {
|
||||||
|
[symbol: string]: { [date: string]: IDataProviderHistoricalResponse };
|
||||||
|
} = {
|
||||||
|
[symbol]: {}
|
||||||
|
};
|
||||||
|
|
||||||
|
let currentFrom = from;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const { historical } = await fetch(
|
while (isBefore(currentFrom, to) || isSameDay(currentFrom, to)) {
|
||||||
`${this.URL}/historical-price-full/${symbol}?apikey=${this.apiKey}`,
|
const currentTo = isBefore(
|
||||||
{
|
addYears(currentFrom, MAX_YEARS_PER_REQUEST),
|
||||||
signal: AbortSignal.timeout(requestTimeout)
|
to
|
||||||
}
|
)
|
||||||
).then((res) => res.json());
|
? addYears(currentFrom, MAX_YEARS_PER_REQUEST)
|
||||||
|
: to;
|
||||||
|
|
||||||
const result: {
|
const { historical } = await fetch(
|
||||||
[symbol: string]: { [date: string]: IDataProviderHistoricalResponse };
|
`${this.URL}/historical-price-full/${symbol}?apikey=${this.apiKey}&from=${format(currentFrom, DATE_FORMAT)}&to=${format(currentTo, DATE_FORMAT)}`,
|
||||||
} = {
|
{
|
||||||
[symbol]: {}
|
signal: AbortSignal.timeout(requestTimeout)
|
||||||
};
|
}
|
||||||
|
).then((res) => res.json());
|
||||||
|
|
||||||
for (const { adjClose, date } of historical) {
|
for (const { adjClose, date } of historical) {
|
||||||
if (
|
if (
|
||||||
(isSameDay(parseDate(date), from) ||
|
(isSameDay(parseDate(date), currentFrom) ||
|
||||||
isAfter(parseDate(date), from)) &&
|
isAfter(parseDate(date), currentFrom)) &&
|
||||||
isBefore(parseDate(date), to)
|
isBefore(parseDate(date), currentTo)
|
||||||
) {
|
) {
|
||||||
result[symbol][date] = {
|
result[symbol][date] = {
|
||||||
marketPrice: adjClose
|
marketPrice: adjClose
|
||||||
};
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
currentFrom = addYears(currentFrom, MAX_YEARS_PER_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@ -282,7 +282,7 @@ export class ManualService implements DataProviderInterface {
|
|||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
if (response.headers['content-type']?.includes('application/json')) {
|
if (response.headers.get('content-type')?.includes('application/json')) {
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
const value = String(
|
const value = String(
|
||||||
|
@ -177,9 +177,13 @@ export class SymbolProfileService {
|
|||||||
symbolProfile?.countries as unknown as Prisma.JsonArray
|
symbolProfile?.countries as unknown as Prisma.JsonArray
|
||||||
),
|
),
|
||||||
dateOfFirstActivity: undefined as Date,
|
dateOfFirstActivity: undefined as Date,
|
||||||
holdings: this.getHoldings(symbolProfile),
|
holdings: this.getHoldings(
|
||||||
|
symbolProfile?.holdings as unknown as Prisma.JsonArray
|
||||||
|
),
|
||||||
scraperConfiguration: this.getScraperConfiguration(symbolProfile),
|
scraperConfiguration: this.getScraperConfiguration(symbolProfile),
|
||||||
sectors: this.getSectors(symbolProfile),
|
sectors: this.getSectors(
|
||||||
|
symbolProfile?.sectors as unknown as Prisma.JsonArray
|
||||||
|
),
|
||||||
symbolMapping: this.getSymbolMapping(symbolProfile)
|
symbolMapping: this.getSymbolMapping(symbolProfile)
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -209,8 +213,9 @@ export class SymbolProfileService {
|
|||||||
(item.SymbolProfileOverrides.holdings as unknown as Holding[])
|
(item.SymbolProfileOverrides.holdings as unknown as Holding[])
|
||||||
?.length > 0
|
?.length > 0
|
||||||
) {
|
) {
|
||||||
item.holdings = item.SymbolProfileOverrides
|
item.holdings = this.getHoldings(
|
||||||
.holdings as unknown as Holding[];
|
item.SymbolProfileOverrides?.holdings as unknown as Prisma.JsonArray
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
item.name = item.SymbolProfileOverrides?.name ?? item.name;
|
item.name = item.SymbolProfileOverrides?.name ?? item.name;
|
||||||
@ -219,8 +224,9 @@ export class SymbolProfileService {
|
|||||||
(item.SymbolProfileOverrides.sectors as unknown as Sector[])?.length >
|
(item.SymbolProfileOverrides.sectors as unknown as Sector[])?.length >
|
||||||
0
|
0
|
||||||
) {
|
) {
|
||||||
item.sectors = item.SymbolProfileOverrides
|
item.sectors = this.getSectors(
|
||||||
.sectors as unknown as Sector[];
|
item.SymbolProfileOverrides?.sectors as unknown as Prisma.JsonArray
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
item.url = item.SymbolProfileOverrides?.url ?? item.url;
|
item.url = item.SymbolProfileOverrides?.url ?? item.url;
|
||||||
@ -249,18 +255,20 @@ export class SymbolProfileService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private getHoldings(symbolProfile: SymbolProfile): Holding[] {
|
private getHoldings(aHoldings: Prisma.JsonArray = []): Holding[] {
|
||||||
return ((symbolProfile?.holdings as Prisma.JsonArray) ?? []).map(
|
if (aHoldings === null) {
|
||||||
(holding) => {
|
return [];
|
||||||
const { name, weight } = holding as Prisma.JsonObject;
|
}
|
||||||
|
|
||||||
return {
|
return aHoldings.map((holding) => {
|
||||||
allocationInPercentage: weight as number,
|
const { name, weight } = holding as Prisma.JsonObject;
|
||||||
name: (name as string) ?? UNKNOWN_KEY,
|
|
||||||
valueInBaseCurrency: undefined
|
return {
|
||||||
};
|
allocationInPercentage: weight as number,
|
||||||
}
|
name: (name as string) ?? UNKNOWN_KEY,
|
||||||
);
|
valueInBaseCurrency: undefined
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private getScraperConfiguration(
|
private getScraperConfiguration(
|
||||||
@ -285,17 +293,19 @@ export class SymbolProfileService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private getSectors(symbolProfile: SymbolProfile): Sector[] {
|
private getSectors(aSectors: Prisma.JsonArray = []): Sector[] {
|
||||||
return ((symbolProfile?.sectors as Prisma.JsonArray) ?? []).map(
|
if (aSectors === null) {
|
||||||
(sector) => {
|
return [];
|
||||||
const { name, weight } = sector as Prisma.JsonObject;
|
}
|
||||||
|
|
||||||
return {
|
return aSectors.map((sector) => {
|
||||||
name: (name as string) ?? UNKNOWN_KEY,
|
const { name, weight } = sector as Prisma.JsonObject;
|
||||||
weight: weight as number
|
|
||||||
};
|
return {
|
||||||
}
|
name: (name as string) ?? UNKNOWN_KEY,
|
||||||
);
|
weight: weight as number
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private getSymbolMapping(symbolProfile: SymbolProfile) {
|
private getSymbolMapping(symbolProfile: SymbolProfile) {
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
import { extractNumberFromString } from '@ghostfolio/common/helper';
|
import {
|
||||||
|
extractNumberFromString,
|
||||||
|
getNumberFormatGroup
|
||||||
|
} from '@ghostfolio/common/helper';
|
||||||
|
|
||||||
describe('Helper', () => {
|
describe('Helper', () => {
|
||||||
describe('Extract number from string', () => {
|
describe('Extract number from string', () => {
|
||||||
@ -32,8 +35,85 @@ describe('Helper', () => {
|
|||||||
).toEqual(99999.99);
|
).toEqual(99999.99);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('Get decimal number (comma notation) for locale where currency is not grouped by default', () => {
|
||||||
|
expect(
|
||||||
|
extractNumberFromString({ locale: 'es-ES', value: '999,99' })
|
||||||
|
).toEqual(999.99);
|
||||||
|
});
|
||||||
|
|
||||||
it('Not a number', () => {
|
it('Not a number', () => {
|
||||||
expect(extractNumberFromString({ value: 'X' })).toEqual(NaN);
|
expect(extractNumberFromString({ value: 'X' })).toEqual(NaN);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Get number format group', () => {
|
||||||
|
let languageGetter: jest.SpyInstance<string, [], any>;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
languageGetter = jest.spyOn(window.navigator, 'language', 'get');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get de-CH number format group', () => {
|
||||||
|
expect(getNumberFormatGroup('de-CH')).toEqual('’');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get de-CH number format group when it is default', () => {
|
||||||
|
languageGetter.mockReturnValue('de-CH');
|
||||||
|
expect(getNumberFormatGroup()).toEqual('’');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get de-DE number format group', () => {
|
||||||
|
expect(getNumberFormatGroup('de-DE')).toEqual('.');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get de-DE number format group when it is default', () => {
|
||||||
|
languageGetter.mockReturnValue('de-DE');
|
||||||
|
expect(getNumberFormatGroup()).toEqual('.');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get en-GB number format group', () => {
|
||||||
|
expect(getNumberFormatGroup('en-GB')).toEqual(',');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get en-GB number format group when it is default', () => {
|
||||||
|
languageGetter.mockReturnValue('en-GB');
|
||||||
|
expect(getNumberFormatGroup()).toEqual(',');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get en-US number format group', () => {
|
||||||
|
expect(getNumberFormatGroup('en-US')).toEqual(',');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get en-US number format group when it is default', () => {
|
||||||
|
languageGetter.mockReturnValue('en-US');
|
||||||
|
expect(getNumberFormatGroup()).toEqual(',');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get es-ES number format group', () => {
|
||||||
|
expect(getNumberFormatGroup('es-ES')).toEqual('.');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get es-ES number format group when it is default', () => {
|
||||||
|
languageGetter.mockReturnValue('es-ES');
|
||||||
|
expect(getNumberFormatGroup()).toEqual('.');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get ru-RU number format group', () => {
|
||||||
|
expect(getNumberFormatGroup('ru-RU')).toEqual(' ');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get ru-RU number format group when it is default', () => {
|
||||||
|
languageGetter.mockReturnValue('ru-RU');
|
||||||
|
expect(getNumberFormatGroup()).toEqual(' ');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get zh-CN number format group', () => {
|
||||||
|
expect(getNumberFormatGroup('zh-CN')).toEqual(',');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Get zh-CN number format group when it is default', () => {
|
||||||
|
languageGetter.mockReturnValue('zh-CN');
|
||||||
|
expect(getNumberFormatGroup()).toEqual(',');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -251,7 +251,9 @@ export function getNumberFormatDecimal(aLocale?: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getNumberFormatGroup(aLocale = getLocale()) {
|
export function getNumberFormatGroup(aLocale = getLocale()) {
|
||||||
const formatObject = new Intl.NumberFormat(aLocale).formatToParts(9999.99);
|
const formatObject = new Intl.NumberFormat(aLocale, {
|
||||||
|
useGrouping: true
|
||||||
|
}).formatToParts(9999.99);
|
||||||
|
|
||||||
return formatObject.find((object) => {
|
return formatObject.find((object) => {
|
||||||
return object.type === 'group';
|
return object.type === 'group';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
export interface Holding {
|
export interface Holding {
|
||||||
allocationInPercentage?: number;
|
allocationInPercentage: number;
|
||||||
name: string;
|
name: string;
|
||||||
valueInBaseCurrency: number;
|
valueInBaseCurrency: number;
|
||||||
}
|
}
|
||||||
|
225
package-lock.json
generated
225
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "ghostfolio",
|
"name": "ghostfolio",
|
||||||
"version": "2.135.0",
|
"version": "2.136.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ghostfolio",
|
"name": "ghostfolio",
|
||||||
"version": "2.135.0",
|
"version": "2.136.0",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -72,7 +72,7 @@
|
|||||||
"lodash": "4.17.21",
|
"lodash": "4.17.21",
|
||||||
"marked": "15.0.4",
|
"marked": "15.0.4",
|
||||||
"ms": "3.0.0-canary.1",
|
"ms": "3.0.0-canary.1",
|
||||||
"ng-extract-i18n-merge": "2.13.1",
|
"ng-extract-i18n-merge": "2.14.1",
|
||||||
"ngx-device-detector": "9.0.0",
|
"ngx-device-detector": "9.0.0",
|
||||||
"ngx-markdown": "19.0.0",
|
"ngx-markdown": "19.0.0",
|
||||||
"ngx-skeleton-loader": "9.0.0",
|
"ngx-skeleton-loader": "9.0.0",
|
||||||
@ -125,7 +125,7 @@
|
|||||||
"@storybook/addon-interactions": "8.4.7",
|
"@storybook/addon-interactions": "8.4.7",
|
||||||
"@storybook/angular": "8.4.7",
|
"@storybook/angular": "8.4.7",
|
||||||
"@storybook/core-server": "8.4.7",
|
"@storybook/core-server": "8.4.7",
|
||||||
"@trivago/prettier-plugin-sort-imports": "4.3.0",
|
"@trivago/prettier-plugin-sort-imports": "5.2.1",
|
||||||
"@types/big.js": "6.2.2",
|
"@types/big.js": "6.2.2",
|
||||||
"@types/cache-manager": "4.0.6",
|
"@types/cache-manager": "4.0.6",
|
||||||
"@types/color": "4.2.0",
|
"@types/color": "4.2.0",
|
||||||
@ -2588,46 +2588,6 @@
|
|||||||
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
|
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/helper-environment-visitor": {
|
|
||||||
"version": "7.24.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
|
|
||||||
"integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/types": "^7.24.7"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/helper-function-name": {
|
|
||||||
"version": "7.24.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
|
|
||||||
"integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/template": "^7.24.7",
|
|
||||||
"@babel/types": "^7.24.7"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/helper-hoist-variables": {
|
|
||||||
"version": "7.24.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
|
|
||||||
"integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/types": "^7.24.7"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/helper-member-expression-to-functions": {
|
"node_modules/@babel/helper-member-expression-to-functions": {
|
||||||
"version": "7.25.9",
|
"version": "7.25.9",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz",
|
||||||
@ -10508,161 +10468,40 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@trivago/prettier-plugin-sort-imports": {
|
"node_modules/@trivago/prettier-plugin-sort-imports": {
|
||||||
"version": "4.3.0",
|
"version": "5.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-5.2.1.tgz",
|
||||||
"integrity": "sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==",
|
"integrity": "sha512-NDZndt0fmVThIx/8cExuJHLZagUVzfGCoVrwH9x6aZvwfBdkrDFTYujecek6X2WpG4uUFsVaPg5+aNQPSyjcmw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/generator": "7.17.7",
|
"@babel/generator": "^7.26.2",
|
||||||
"@babel/parser": "^7.20.5",
|
"@babel/parser": "^7.26.2",
|
||||||
"@babel/traverse": "7.23.2",
|
"@babel/traverse": "^7.25.9",
|
||||||
"@babel/types": "7.17.0",
|
"@babel/types": "^7.26.0",
|
||||||
"javascript-natural-sort": "0.7.1",
|
"javascript-natural-sort": "^0.7.1",
|
||||||
"lodash": "^4.17.21"
|
"lodash": "^4.17.21"
|
||||||
},
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">18.12"
|
||||||
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@vue/compiler-sfc": "3.x",
|
"@vue/compiler-sfc": "3.x",
|
||||||
"prettier": "2.x - 3.x"
|
"prettier": "2.x - 3.x",
|
||||||
|
"prettier-plugin-svelte": "3.x",
|
||||||
|
"svelte": "4.x || 5.x"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"@vue/compiler-sfc": {
|
"@vue/compiler-sfc": {
|
||||||
"optional": true
|
"optional": true
|
||||||
|
},
|
||||||
|
"prettier-plugin-svelte": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"svelte": {
|
||||||
|
"optional": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/generator": {
|
|
||||||
"version": "7.17.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz",
|
|
||||||
"integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/types": "^7.17.0",
|
|
||||||
"jsesc": "^2.5.1",
|
|
||||||
"source-map": "^0.5.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/generator/node_modules/@babel/types": {
|
|
||||||
"version": "7.26.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz",
|
|
||||||
"integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/helper-string-parser": "^7.25.9",
|
|
||||||
"@babel/helper-validator-identifier": "^7.25.9"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse": {
|
|
||||||
"version": "7.23.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
|
|
||||||
"integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/code-frame": "^7.22.13",
|
|
||||||
"@babel/generator": "^7.23.0",
|
|
||||||
"@babel/helper-environment-visitor": "^7.22.20",
|
|
||||||
"@babel/helper-function-name": "^7.23.0",
|
|
||||||
"@babel/helper-hoist-variables": "^7.22.5",
|
|
||||||
"@babel/helper-split-export-declaration": "^7.22.6",
|
|
||||||
"@babel/parser": "^7.23.0",
|
|
||||||
"@babel/types": "^7.23.0",
|
|
||||||
"debug": "^4.1.0",
|
|
||||||
"globals": "^11.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/@babel/generator": {
|
|
||||||
"version": "7.26.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz",
|
|
||||||
"integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/parser": "^7.26.3",
|
|
||||||
"@babel/types": "^7.26.3",
|
|
||||||
"@jridgewell/gen-mapping": "^0.3.5",
|
|
||||||
"@jridgewell/trace-mapping": "^0.3.25",
|
|
||||||
"jsesc": "^3.0.2"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/@babel/types": {
|
|
||||||
"version": "7.26.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz",
|
|
||||||
"integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/helper-string-parser": "^7.25.9",
|
|
||||||
"@babel/helper-validator-identifier": "^7.25.9"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/jsesc": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
|
||||||
"jsesc": "bin/jsesc"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/types": {
|
|
||||||
"version": "7.17.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz",
|
|
||||||
"integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/helper-validator-identifier": "^7.16.7",
|
|
||||||
"to-fast-properties": "^2.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@trivago/prettier-plugin-sort-imports/node_modules/jsesc": {
|
|
||||||
"version": "2.5.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
|
|
||||||
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
|
||||||
"jsesc": "bin/jsesc"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@trivago/prettier-plugin-sort-imports/node_modules/source-map": {
|
|
||||||
"version": "0.5.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
|
||||||
"integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@trysound/sax": {
|
"node_modules/@trysound/sax": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
|
||||||
@ -24935,9 +24774,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/ng-extract-i18n-merge": {
|
"node_modules/ng-extract-i18n-merge": {
|
||||||
"version": "2.13.1",
|
"version": "2.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.14.1.tgz",
|
||||||
"integrity": "sha512-aU+shz0VSe0qqKYmlpg42P2C6Ol6eQ+DZDTYzQM4PTMfEBWJNFtl+c7B+MA68/AzdpcNPKu0BWJLZchCdZtjhQ==",
|
"integrity": "sha512-hymcJcjfXJ+0r3EQShaSGmsST0AV3usgJuNMf6l04X+nIsgUPLMrXPBB/hVVVlAOjRcEB7RamKnfmexa5Rq1tw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular-devkit/architect": "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0 || ^0.1800.0 || ^0.1900.0",
|
"@angular-devkit/architect": "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0 || ^0.1800.0 || ^0.1900.0",
|
||||||
@ -30295,16 +30134,6 @@
|
|||||||
"devOptional": true,
|
"devOptional": true,
|
||||||
"license": "BSD-3-Clause"
|
"license": "BSD-3-Clause"
|
||||||
},
|
},
|
||||||
"node_modules/to-fast-properties": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/to-regex-range": {
|
"node_modules/to-regex-range": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ghostfolio",
|
"name": "ghostfolio",
|
||||||
"version": "2.135.0",
|
"version": "2.136.0",
|
||||||
"homepage": "https://ghostfol.io",
|
"homepage": "https://ghostfol.io",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"repository": "https://github.com/ghostfolio/ghostfolio",
|
"repository": "https://github.com/ghostfolio/ghostfolio",
|
||||||
@ -118,7 +118,7 @@
|
|||||||
"lodash": "4.17.21",
|
"lodash": "4.17.21",
|
||||||
"marked": "15.0.4",
|
"marked": "15.0.4",
|
||||||
"ms": "3.0.0-canary.1",
|
"ms": "3.0.0-canary.1",
|
||||||
"ng-extract-i18n-merge": "2.13.1",
|
"ng-extract-i18n-merge": "2.14.1",
|
||||||
"ngx-device-detector": "9.0.0",
|
"ngx-device-detector": "9.0.0",
|
||||||
"ngx-markdown": "19.0.0",
|
"ngx-markdown": "19.0.0",
|
||||||
"ngx-skeleton-loader": "9.0.0",
|
"ngx-skeleton-loader": "9.0.0",
|
||||||
@ -171,7 +171,7 @@
|
|||||||
"@storybook/addon-interactions": "8.4.7",
|
"@storybook/addon-interactions": "8.4.7",
|
||||||
"@storybook/angular": "8.4.7",
|
"@storybook/angular": "8.4.7",
|
||||||
"@storybook/core-server": "8.4.7",
|
"@storybook/core-server": "8.4.7",
|
||||||
"@trivago/prettier-plugin-sort-imports": "4.3.0",
|
"@trivago/prettier-plugin-sort-imports": "5.2.1",
|
||||||
"@types/big.js": "6.2.2",
|
"@types/big.js": "6.2.2",
|
||||||
"@types/cache-manager": "4.0.6",
|
"@types/cache-manager": "4.0.6",
|
||||||
"@types/color": "4.2.0",
|
"@types/color": "4.2.0",
|
||||||
@ -213,6 +213,6 @@
|
|||||||
"node": ">=20"
|
"node": ">=20"
|
||||||
},
|
},
|
||||||
"prisma": {
|
"prisma": {
|
||||||
"seed": "node prisma/seed.js"
|
"seed": "ts-node --compiler-options {\"module\":\"CommonJS\"} prisma/seed.ts"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
const { PrismaClient } = require('@prisma/client');
|
import { PrismaClient } from '@prisma/client';
|
||||||
|
|
||||||
const prisma = new PrismaClient();
|
const prisma = new PrismaClient();
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
Loading…
x
Reference in New Issue
Block a user