diff --git a/package-lock.json b/package-lock.json index 515aeba8..7bea3c99 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "MIT", "dependencies": { "@blockfrost/blockfrost-js": "^5.2.0", + "@minswap/market-cap": "^0.1.12", "axios": "^1.3.3" }, "devDependencies": { @@ -2983,6 +2984,15 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@minswap/market-cap": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@minswap/market-cap/-/market-cap-0.1.12.tgz", + "integrity": "sha512-FledfUjiWkcuOk2LBKW9E9QRu5FknMWPmemINIxUKn8XKUQnYr9A6y77s7hUBOgB6aTB8PnzKzlDWHqwZENTxQ==", + "dependencies": { + "@blockfrost/blockfrost-js": "^5.2.0", + "axios": "^1.3.3" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3401,9 +3411,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3545,9 +3555,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3604,9 +3614,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3773,9 +3783,9 @@ } }, "node_modules/assert-node-version/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } @@ -3794,11 +3804,11 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.3.tgz", - "integrity": "sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -5288,9 +5298,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", @@ -7014,9 +7024,9 @@ } }, "node_modules/jest-runtime/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -7152,9 +7162,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -9044,9 +9054,9 @@ ] }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -9649,9 +9659,9 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -11850,6 +11860,15 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "@minswap/market-cap": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@minswap/market-cap/-/market-cap-0.1.12.tgz", + "integrity": "sha512-FledfUjiWkcuOk2LBKW9E9QRu5FknMWPmemINIxUKn8XKUQnYr9A6y77s7hUBOgB6aTB8PnzKzlDWHqwZENTxQ==", + "requires": { + "@blockfrost/blockfrost-js": "^5.2.0", + "axios": "^1.3.3" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -12218,9 +12237,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -12299,9 +12318,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -12341,9 +12360,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -12465,9 +12484,9 @@ }, "dependencies": { "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" } } }, @@ -12485,11 +12504,11 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "axios": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.3.tgz", - "integrity": "sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "requires": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -13584,9 +13603,9 @@ "dev": true }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" }, "form-data": { "version": "4.0.0", @@ -14834,9 +14853,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -14941,9 +14960,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -16259,9 +16278,9 @@ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true }, "shebang-command": { @@ -16679,9 +16698,9 @@ } }, "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true }, "wordwrap": { diff --git a/package.json b/package.json index 992bff49..139bc248 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "homepage": "https://github.com/minswap/market-cap#readme", "dependencies": { "@blockfrost/blockfrost-js": "^5.2.0", + "@minswap/market-cap": "^0.1.12", "axios": "^1.3.3" }, "lint-staged": { diff --git a/src/index.ts b/src/index.ts index ee6276f5..b2c37ded 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,29 +1,45 @@ import aadaFetcher from "./tokens/aada"; +import aceFetcher from "./tokens/ace"; +import adyFetcher from "./tokens/ady"; import agcFetcher from "./tokens/agc"; import agixFetcher from "./tokens/agix"; import angelsFetcher from "./tokens/angels"; import ashibFetcher from "./tokens/ashib"; import awooFetcher from "./tokens/awoo"; import axoFetcher from "./tokens/axo"; +import babyshitzuFetcher from "./tokens/babyshitzu"; +import babysnekFetcher from "./tokens/babysnek"; +import bagFetcher from "./tokens/bag"; import bankFetcher from "./tokens/bank"; +import betFetcher from "./tokens/bet"; import bookFetcher from "./tokens/book"; +import boonFetcher from "./tokens/boon"; +import boxFetcher from "./tokens/box"; +import bptFetcher from "./tokens/bpt"; import btnFetcher from "./tokens/btn"; import bubbleFetcher from "./tokens/bubble"; import c3Fetcher from "./tokens/c3"; import c4Fetcher from "./tokens/c4"; +import catsFetcher from "./tokens/cats"; import catskyFetcher from "./tokens/catsky"; import cblpFetcher from "./tokens/cblp"; import cbtcFetcher from "./tokens/cbtc"; +import cerraFetcher from "./tokens/cerra"; import cgiFetcher from "./tokens/cgi"; import charlyFetcher from "./tokens/charly"; import chryFetcher from "./tokens/chry"; import clapFetcher from "./tokens/clap"; +import clarityFetcher from "./tokens/clarity"; import clayFetcher from "./tokens/clay"; import cnctFetcher from "./tokens/cnct"; import cnetaFetcher from "./tokens/cneta"; import copiFetcher from "./tokens/copi"; import cswapFetcher from "./tokens/cswap"; +import ctvFetcher from "./tokens/ctv"; +import daddyFetcher from "./tokens/daddy"; import danaFetcher from "./tokens/dana"; +import danzoFetcher from "./tokens/danzo"; +import ddosFetcher from "./tokens/ddos"; import derpFetcher from "./tokens/derp"; import dgafFetcher from "./tokens/dgaf"; import dingFetcher from "./tokens/ding"; @@ -36,10 +52,17 @@ import fetFetcher from "./tokens/fet"; import fireFetcher from "./tokens/fire"; import flacFetcher from "./tokens/flac"; import fldtFetcher from "./tokens/fldt"; +import fleshFetcher from "./tokens/flesh"; +import frenFetcher from "./tokens/fren"; import gensFetcher from "./tokens/gens"; import gensxFetcher from "./tokens/gensx"; import geroFetcher from "./tokens/gero"; +import girlfrenFetcher from "./tokens/girlfren"; +import gldsnekFetcher from "./tokens/gldsnek"; +import gmeFetcher from "./tokens/gme"; import gokeyFetcher from "./tokens/gokey"; +import gokeyv2Fetcher from "./tokens/gokeyv2"; +import gummyFetcher from "./tokens/gummy"; import herbFetcher from "./tokens/herb"; import hoskyFetcher from "./tokens/hosky"; import huntFetcher from "./tokens/hunt"; @@ -50,49 +73,77 @@ import iethFetcher from "./tokens/ieth"; import indyFetcher from "./tokens/indy"; import iusdFetcher from "./tokens/iusd"; import jellyFetcher from "./tokens/jelly"; +import jorgeFetcher from "./tokens/jorge"; import jpgFetcher from "./tokens/jpg"; import kitupFetcher from "./tokens/kitup"; import lccFetcher from "./tokens/lcc"; import lifiFetcher from "./tokens/lifi"; import lobsterFetcher from "./tokens/lobster"; import liqwidFetcher from "./tokens/lq"; +import lwhFetcher from "./tokens/lwh"; +import mannyFetcher from "./tokens/manny"; import mayzFetcher from "./tokens/mayz"; import meldFetcher from "./tokens/meld"; import milkFetcher from "./tokens/milk"; import milkv2Fetcher from "./tokens/milkv2"; import minFetcher from "./tokens/min"; import mintFetcher from "./tokens/mint"; +import miraFetcher from "./tokens/mira"; import mntFetcher from "./tokens/mnt"; import moaiFetcher from "./tokens/moai"; +import mrHankeyFetcher from "./tokens/mrhankey"; import mtcFetcher from "./tokens/mtc"; import myieldFetcher from "./tokens/myield"; +import myusdFetcher from "./tokens/myusd"; import nebulaFetcher from "./tokens/nebula"; import newmFetcher from "./tokens/newm"; import nftcFetcher from "./tokens/nftc"; +import nikeFetcher from "./tokens/nike"; import ninjazFetcher from "./tokens/ninjaz"; import nmkrFetcher from "./tokens/nmkr"; +import noelFetcher from "./tokens/noel"; import ntxFetcher from "./tokens/ntx"; +import nvlFetcher from "./tokens/nvl"; import optFetcher from "./tokens/opt"; import optimFetcher from "./tokens/optim"; import paviaFetcher from "./tokens/pavia"; import pepeblueFetcher from "./tokens/pepeblue"; +import pirateFetcher from "./tokens/pirate"; +import porkeFetcher from "./tokens/porke"; import proxiesFetcher from "./tokens/proxies"; import prsprFetcher from "./tokens/prspr"; import pugchipFetcher from "./tokens/pugchip"; +import punksFetcher from "./tokens/punks"; import rakerFetcher from "./tokens/raker"; +import rausiFetcher from "./tokens/rausi"; +import reitFetcher from "./tokens/reit"; import revuFetcher from "./tokens/revu"; +import rexFetcher from "./tokens/rex"; import rjvFetcher from "./tokens/rjv"; +import rsbtcFetcher from "./tokens/rsbtc"; import rsergFetcher from "./tokens/rserg"; +import rsrsnFetcher from "./tokens/rsrsn"; +import scaleFetcher from "./tokens/scale"; import shardsFetcher from "./tokens/shards"; +import sharkyFetcher from "./tokens/sharky"; +import sharlFetcher from "./tokens/sharl"; import shenFetcher from "./tokens/shen"; +import slopFetcher from "./tokens/slop"; +import smokeFetcher from "./tokens/smoke"; import snekFetcher from "./tokens/snek"; import snepeFetcher from "./tokens/snepe"; +import snokFetcher from "./tokens/snok"; import snowFetcher from "./tokens/snow"; +import snukFetcher from "./tokens/snuk"; import societyFetcher from "./tokens/society"; import spfFetcher from "./tokens/spf"; +import splashFetcher from "./tokens/splash"; +import spxFetcher from "./tokens/spx"; +import ssssFetcher from "./tokens/ssss"; import stableFetcher from "./tokens/stable"; import sundaeFetcher from "./tokens/sundae"; import tedyFetcher from "./tokens/tedy"; +import tetFetcher from "./tokens/tet"; import toolFetcher from "./tokens/tool"; import trtlFetcher from "./tokens/trtl"; import utilFetcher from "./tokens/util"; @@ -106,6 +157,7 @@ import wolfFetcher from "./tokens/wolf"; import workFetcher from "./tokens/work"; import wozFetcher from "./tokens/woz"; import wrtFetcher from "./tokens/wrt"; +import xrayFetcher from "./tokens/xray"; import xvyfiFetcher from "./tokens/xvyfi"; import yummiFetcher from "./tokens/yummi"; import { SupplyFetcher } from "./types"; @@ -113,6 +165,8 @@ import { SupplyFetcher } from "./types"; export * from "./types"; export const supplyFetchers: Record = { + "338c17dffaaefdb97ace91100724836178c3f9dd994a4798a66f546d4d414e4e59": + mannyFetcher, "29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e": minFetcher, "577f0b1342f8f8f4aed3388b80a8535812950c7a892495c0ecdf0f1e0014df10464c4454": fldtFetcher, @@ -146,6 +200,8 @@ export const supplyFetchers: Record = { "1d7f33bd23d85e1a25d87d86fac4f199c3197a2f7afeb662a0f34e1e776f726c646d6f62696c65746f6b656e": wmtFetcher, c88bbd1848db5ea665b1fffbefba86e8dcd723b5085348e8a8d2260f44414e41: danaFetcher, + e633efbf19a37500c6f22965af3130baa34c3a644a146662dd2d74a250554e4b53: + punksFetcher, "884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae5041564941": paviaFetcher, b6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0436f726e75636f70696173205b76696120436861696e506f72742e696f5d: @@ -154,6 +210,8 @@ export const supplyFetchers: Record = { vyfiFetcher, a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235484f534b59: hoskyFetcher, + dd00d877798443a2de57e5bc667784168616aa8244b558743e448784534d4f4b45: + smokeFetcher, "815418a1b078a259e678ecccc9d7eac7648d10b88f6f75ce2db8a25a4672616374696f6e2045737461746520546f6b656e": fetFetcher, dda5fdb1002f7389b33e036b6afee82a8189becb6cba852e8b79b4fb0014df1047454e53: @@ -224,6 +282,8 @@ export const supplyFetchers: Record = { awooFetcher, "43b07d4037f0d75ee10f9863097463fc02ff3c0b8b705ae61d9c75bf4d796e746820546f6b656e": mntFetcher, + "92776616f1f32c65a173392e4410a3d8c39dcf6ef768c73af164779c4d79555344": + myusdFetcher, "1ddcb9c9de95361565392c5bdff64767492d61a96166cb16094e54be4f5054": optFetcher, e52964af4fffdb54504859875b1827b60ba679074996156461143dc14f5054494d: optimFetcher, @@ -251,16 +311,23 @@ export const supplyFetchers: Record = { cswapFetcher, "52162581184a457fad70470161179c5766f00237d4b67e0f1df1b4e65452544c": trtlFetcher, + "7c4389a89ae25d18c77c2347ee8df20b4a6278d34e6c550296eb710e4d7248616e6b6579": + mrHankeyFetcher, "09f2d4e4a5c3662f4c1e6a7d9600e9605279dbdcedb22d4507cb6e75535046": spfFetcher, b3bd74dd43f83815519e387bdffd1cb9be411df8f2774f48e0fd3669534e455045: snepeFetcher, "51a5e236c4de3af2b8020442e2a26f454fda3b04cb621c1294a0ef34424f4f4b": bookFetcher, + "9f452e23804df3040b352b478039357b506ad3b50d2ce0d7cbd5f806435456": ctvFetcher, "5c1c91a65bedac56f245b8184b5820ced3d2f1540e521dc1060fa6834a454c4c59": jellyFetcher, "961f2cac0bb1967d74691af179350c1e1062c7298d1f7be1e4696e312444455250": derpFetcher, "2d587111358801114f04df83dc0015de0a740b462b75cce5170fc935434749": cgiFetcher, + fc11a9ef431f81b837736be5f53e4da29b9469c983d07f321262ce614652454e: frenFetcher, + "61fe4feee9d051c75b20d11701c3154ae95d9857bd429ffb85087eae526578": rexFetcher, + "52d4b39c2407ce020ab4abb785d820a3ad5a2fa07600d07a205e509f52454954": + reitFetcher, "20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3c50524f584945": proxiesFetcher, f6ac48c64aa7af16434d9f84e014d11fba38525b436acc338ff20b0d4d7463: mtcFetcher, @@ -295,11 +362,86 @@ export const supplyFetchers: Record = { angelsFetcher, afbe91c0b44b3040e360057bf8354ead8c49c4979ae6ab7c4fbdc9eb4d494c4b7632: milkv2Fetcher, + d542ad1dc269ae601125e8259cb8427c6b37c1d3569d10441df0291f4149: betFetcher, "04b95368393c821f180deee8229fbd941baaf9bd748ebcdbf7adbb147273455247": rsergFetcher, + "20fda53c96fc6ac5622ca94fd27a473c42c7ec56d0e96bceef926c91536861726b79": + sharkyFetcher, + "7507734918533b3b896241b4704f3d4ce805256b01da6fcede43043642616279534e454b": + babysnekFetcher, + "94bb5aa2fedb3a4097c91934c79634407f4634aa192587699ef927b744446f53": + ddosFetcher, + "6e6098846537ca48ff18eac70b7f5040c69ba2c5570521b6eb00fdf56461646479": + daddyFetcher, ea153b5d4864af15a1079a94a0e2486d6376fa28aafad272d15b243a0014df10536861726473: shardsFetcher, "017af5d958fffdf65f3e5b8b3ff5abefd210a03464a9fc48ea0f4a390014df10574c4b": wlkFetcher, "016be5325fd988fea98ad422fcfd53e5352cacfced5c106a932a35a442544e": btnFetcher, + bdf6ea73a43efded4503bd78e60f0bbce9111f29d235f4b890096f87: pirateFetcher, + defe216460d594211631fcfbd354f361c04645d6a0cfeead3d6f62836c65767679776966686174: + lwhFetcher, + "1cd92100fc05fce7416b3857a079780164eeaf8f5613f4b814f24e09426f6f6e436f696e": + boonFetcher, + "86abe45be4d8fb2e8f28e8047d17d0ba5592f2a6c8c452fc88c2c14358524159": + xrayFetcher, + "438514ae1beb020d35e5389993447cea29637d6272c918017988ef364164615969656c64": + adyFetcher, + "8c904e09d2ba206d78e6904133659dadf827e478a8f71beb8e4a823a504f524b45": + porkeFetcher, + cdbbe391853676285131fe2de250e274dbeb5f9d98344e86c7b383d9474c44534e454b: + gldsnekFetcher, + f7516c9f7b347eb412a777f3c711099b199ccd2be23b568a4a3abf6d535058: spxFetcher, + "5b26e685cc5c9ad630bde3e3cd48c694436671f3d25df53777ca60ef4e564c": nvlFetcher, + "1e76aaec4869308ef5b61e81ebf229f2e70f75a50223defa087f807b436c61726974792044414f20546f6b656e": + clarityFetcher, + "6947eccc74ebf8c1716339b97af768bfbc70d330a743b79bbc5ccdeb544554": tetFetcher, + ab0dec21aa7d939ad124ffaf95faf8ed72b1018ff72fffd8f9974907474f4b4559: + gokeyv2Fetcher, + "83099a945e95a38d3dc3ab562af81671ed094becf493074251d3f45062616279536869747a75": + babyshitzuFetcher, + b17b04ec0b8fa48613d7c80bc09a810e8bc8297cbbb6e9f4949fd8424e4f454c: noelFetcher, + f9a491442678bb2f90a3be676d1f888ce87330003ab7151f9efb3b68424f58: boxFetcher, + ececc92aeaaac1f5b665f567b01baec8bc2771804b4c21716a87a4e353504c415348: + splashFetcher, + "160a880d9fc45380737cb7e57ff859763230aab28b3ef6a84007bfcc4d495241": + miraFetcher, + "7d9aabc78703947e931e28273a96cf7412039fbd2e54a90ffb17239c42616279506f726b65": + aceFetcher, + "4de3c5d6b555c99c7f56a1f917567288f025f337cdf233d99e462a1353737373": + ssssFetcher, + "246d6a8493dd02c1243ccae10b3275f318e4f3144140d05c4c28c422536e556b": + snukFetcher, + d42729a8559b38c5d13009d653e4086404234bdb535a97b945c6ea78425054: bptFetcher, + "4342a3d3c15545a592bf38294dc75c7a1dd3550388303e3a06f4416d4345525241": + cerraFetcher, + "548c390391253aff00af9c95ae310f00803fd28035a6ed6f17c1e5e2424147": bagFetcher, + e4b8e9d247d9aa043bb9e13b38989b11b02c595450e6313aebdf6c1f47616d6553746f70: + gmeFetcher, + "394d8a0021c8825ad9385c1112009994e37b7b53c0c406d389d452db47756d6d79": + gummyFetcher, + "2dbc49f682ad21f6d18705cf446f9f7a277731ab70ae21a454f888b27273425443": + rsbtcFetcher, + "590f6d119b214cdcf7ef7751f8b7f1de615ff8f6de097a5ce62b257b534841524c": + sharlFetcher, + "04b95368393c821f180deee8229fbd941baaf9bd748ebcdbf7adbb14727352534e": + rsrsnFetcher, + c881c20e49dbaca3ff6cef365969354150983230c39520b917f5cf7c4e696b65: nikeFetcher, + "03dc510dbd1d1321edc06d8ae013f55fdd79f390c7415e2a09b64797534e4f4b": + snokFetcher, + bf3e19192da77dfadc7c9065944e50ca7e1a439d90833e3ae58b720a44414e5a4f: + danzoFetcher, + c0a7eb16fa55a982c63976c34af6e42cb1b5aeb9ab2a7aaec06f6cd04a6f726765: + jorgeFetcher, + bbb0be3f57598bbf6a7d6ce18a60700beceb6904923a6a555ca0345443415453: catsFetcher, + "20efaf13727eea5813e57530f1f9bb60fa8a986056b48c4b89d59b414769726c4672656e": + girlfrenFetcher, + c80d335ae2206381ae3dfe07b1ef38e43af95736e7f5d4f150663c255241555349: + rausiFetcher, + a1ce0414d79b040f986f3bcd187a7563fd26662390dece6b12262b52464c45534820544f4b454e: + fleshFetcher, + "1f01188ffed79a9296d824c49eec851c21ea860e7c4f88324de50f2c7363616c65": + scaleFetcher, + ea02c99c0668891d6b7cdc49e075cbddf9cd5b89404e5a8a8e5d7016534c4f5020436f696e: + slopFetcher, }; diff --git a/src/tokens/ace.ts b/src/tokens/ace.ts new file mode 100644 index 00000000..aa30ee98 --- /dev/null +++ b/src/tokens/ace.ts @@ -0,0 +1,27 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const ACE = "7d9aabc78703947e931e28273a96cf7412039fbd2e54a90ffb17239c42616279506f726b65"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 1_000_000_000_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, ACE, [ + "stake1u8wwshdrztua5qhd9g06g68692dvrgqksncccpxv7pgpzwgd5mxuy", // Treasury + "stake1uxmtrg8cs7d86u8hydvpgjntgnn8apvrpqawaff0f9a270gfhpzpg", // acecoinada + "stake1u82ls6hlnx0hh8ph5fl6kqdxx7mvw9kqz2563l7ukhxwxec0mtv4y", // Farmbot + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, ACE, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // burn address + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/ady.ts b/src/tokens/ady.ts new file mode 100644 index 00000000..2505b676 --- /dev/null +++ b/src/tokens/ady.ts @@ -0,0 +1,30 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const ADY = + "438514ae1beb020d35e5389993447cea29637d6272c918017988ef364164615969656c64"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 100_000_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, ADY, [ + "addr1qyrgyf7n3whtc7v07lfnrlzzgjywenvdx5n4ugfqsyzudyse8qjesjluhd7nkmauw9tu4tjw5m6j840af7pzmp60hf8qmc4gke", // marketing + "addr1q87nf2vx2s6ur8jek6slprf4m65e39cmxjetz5g42zjj84jrdhxhfhtypyc3zjx6r32c8vq2xv34mlvuaddrnc8shghsy50thl", // rewards + "addr1qy8vlnj0mglq79mlr5fx096qea6r7qrsu6rt3wqvhl678rl05jpfehp48d28ravv7qe7zh4hnur8qktff5qa4t6dhg7svrlax9", // liquidity + "addr1qxpeczj2lluh88sa2g3tm0e3fj39c34rlctmvcszjs67g6wjj9djsz0020h68nz3rxknzdh93nryqzhq6h9z0nnzf0rshrectt", // tosidrop distribution + "addr1w9jkhngsyq2nl09r59m95r903mn40wfpcze7psqvxjzxragmnuddk", // dripdropz distribution + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, ADY, [ + "addr1w8t6qhfx7cty7pg805adz62gjfkld0c70usezv4e4uxfk0sf0e2mj", // burn wallet + ]); + + const treasury = Number(treasuryRaw) / 1e7; + const burn = Number(burnRaw) / 1e7; + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/ashib.ts b/src/tokens/ashib.ts index bb6015ed..3386df18 100644 --- a/src/tokens/ashib.ts +++ b/src/tokens/ashib.ts @@ -3,23 +3,35 @@ import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; const ASHIB = "afc910d7a306d20c12903979d4935ae4307241d03245743548e767834153484942"; -const TREASURY_ADDRESSES = [ - "addr1qxpv50tpyy9xutrzd3585eup87wm0qv3zyw4jfawqzchgyfltcw74v5edmr2veq0dvu4262jhendzee24ellgcamlqzsfzzfsq", // treasury 1 - "addr1q8dhkxncaznxd66tq5npvuqxl87zdw0glpazysxckl9gxfecnrdy6frmvrk2szfx2wsg9wa3z3wzctfmgaw7hcts7g6quzkakx", // treasury 2 - "addr1z8snz7c4974vzdpxu65ruphl3zjdvtxw8strf2c2tmqnxz2j2c79gy9l76sdg0xwhd7r0c0kna0tycz4y5s6mlenh8pq0xmsha", // treasury 3 - "addr1q8my0y2n7ythvevuyfur4w4akrc6mp454p2yp4pkjcrlwq2zhw8y7c92vew3fqwy7u4yrq66d2yt8wmd0tm3uyhsxaps59yy9y", // treasury 4 - "addr1qxrlzwkmv826sps9sfjdg3cr8malcr2wmfvhvt0sqpd84xaq4rezcdmnr9f52x0zsgpz3zl8klrwjhmynksx5lhs5scsdqcx9d", // treasury 5 -]; const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { const blockFrost = getBlockFrostInstance(options); - const total = 109e9; // 109 billion - const treasury = - Number(await getAmountInAddresses(blockFrost, ASHIB, TREASURY_ADDRESSES)) / - 1e6; + const total = 1_000_000_000_000; + const treasury_team_and_distributorsRaw = await getAmountInAddresses( + blockFrost, + ASHIB, + [ + "addr1q9pyzv7p23c7sqsrd9y50pl9csefm5y9gs74t9zs7zqhxmlvevz8mzgjhfmjv87qdj45l7mfrfnv2v5dgr70uky86txqvfusqz", // community wallet + "addr1qxrlzwkmv826sps9sfjdg3cr8malcr2wmfvhvt0sqpd84xaq4rezcdmnr9f52x0zsgpz3zl8klrwjhmynksx5lhs5scsdqcx9d", // team 1 + "addr1qy40nxgx8wk03xn0k0xega3l6fwrekwsyuuj7cyyhsz8fl2zhw8y7c92vew3fqwy7u4yrq66d2yt8wmd0tm3uyhsxapsy4t5ms", // team 2 + "addr1qxpeczj2lluh88sa2g3tm0e3fj39c34rlctmvcszjs67g6wjj9djsz0020h68nz3rxknzdh93nryqzhq6h9z0nnzf0rshrectt", // tosidrop distribution + "addr1w9rerwzk0f5v4den9u2c7anv2d4dl88hq9cq0xgcmernsfsak7w6r", // dripdropz distribution + "addr1qyjhg2ge6w6tzwc9gwmddp5ha07zsawpd3pse7v9a0893jufgx9ne2hurkmz7adclf0tpehwdqwuhfejtph98vpfhulscdnlzz", // adalot exchange vending + "addr1q8xhjg9tn29a6vpv9e52xf8zn7hl7nqkv99kk4uac08myjud244wsz2v65xv0jc4tgjyfxrhgnmcav0upfcvcdv2d8qq7fqgh3", // adalot jackpot vending + "addr1qxkmr0m22xeqludcg5rjdmecjxasu9fat0680qehtcsnftaadgykewa9ufvegeuca9yyq03d9v7ea2y2zthgu7hfgjtsddp6gr", // minswap farm distribution + "addr1qx3wvec7uhweerzqaeezzepmrwft8sfpucgk50tsuluz8f8cfhlykwhxy66aazkjmfp4euf0yhpeezx3exncm7e69pvs7jetw6", // starcada distribution + ] + ); + + const burnRaw = await getAmountInAddresses(blockFrost, ASHIB, [ + "addr1w8qvvu0m5jpkgxn3hwfd829hc5kfp0cuq83tsvgk44752dsea0svn", // burn wallet + ]); + + const uncirculated = Number(treasury_team_and_distributorsRaw) / 1e6; + const burn = Number(burnRaw) / 1e6; return { - circulating: (total - treasury).toString(), - total: total.toString(), + circulating: (total - uncirculated - burn).toString(), + total: (total - burn).toString(), }; }; diff --git a/src/tokens/babyshitzu.ts b/src/tokens/babyshitzu.ts new file mode 100644 index 00000000..f8ddca51 --- /dev/null +++ b/src/tokens/babyshitzu.ts @@ -0,0 +1,29 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const TOKEN = "83099a945e95a38d3dc3ab562af81671ed094becf493074251d3f45062616279536869747a75"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 777_777_777_777; + const treasuryRaw = await getAmountInAddresses(blockFrost, TOKEN, [ + "stake1ux8qy73ylrk6pclmp880kffxz78t6vmq8jn04e2s6lchwps3fzafa", // giveaway + "stake1uxudsd30d6k5l4wwt0sf2t9numc2m8dpl3k45h2edxfqs3cccet2d", // advertising + "stake1u9nmczw7ulpns6nqunnc4lwxse3v0emwgvzpg33jl68rz4sznuhfz", // utility + "stake1u9rzlqgxczarm8ms0w5fqlj9nej5uctvduc6lqmn4xtp8mqyxdak9", // cex listings + "stake1uy5rkqrl06sn6lqfqsax2nwtcykjl9atyv4xmnfw9zq0yxch9ceqr", // team + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, TOKEN, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", //$burnsnek + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/babysnek.ts b/src/tokens/babysnek.ts new file mode 100644 index 00000000..63334745 --- /dev/null +++ b/src/tokens/babysnek.ts @@ -0,0 +1,21 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const BABYSNEK = + "7507734918533b3b896241b4704f3d4ce805256b01da6fcede43043642616279534e454b"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 76_715_880_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, BABYSNEK, [ + "stake1uy5fe64k5lv5nrsy0g322ywh5fnfwyxwcqvp0pej3ymee7cpuv7z4", // $babysnektoken + "stake178mscmhst8zj35s9tvpj8926nmw9dj8vut4rhme9qwtpj2qm8f00a", // $babysnekdev + ]); + const treasury = Number(treasuryRaw); + return { + circulating: (total - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/bag.ts b/src/tokens/bag.ts new file mode 100644 index 00000000..8e65e55e --- /dev/null +++ b/src/tokens/bag.ts @@ -0,0 +1,22 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const BAG = + "548c390391253aff00af9c95ae310f00803fd28035a6ed6f17c1e5e2424147"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 1e9; + + const treasuryRaw = await getAmountInAddresses(blockFrost, BAG, [ + "stake1uxwvvuluasxf456sjuqcdfnlv3gecykp6ajf5ds4r09xkzgvwml26", + ]); + const treasury = Number(treasuryRaw); + + return { + circulating: (total - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/bet.ts b/src/tokens/bet.ts new file mode 100644 index 00000000..3c60667d --- /dev/null +++ b/src/tokens/bet.ts @@ -0,0 +1,21 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const BET = + "d542ad1dc269ae601125e8259cb8427c6b37c1d3569d10441df0291f4149"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 100_000_000; + const vestingRaw = await getAmountInAddresses(blockFrost, BET, [ + "stake1uxxsyr4385z8syr3qs8k8vcpfqgxf8ddskknfyavm0apjcqvht2vw" // Treasury + ]); + + const vesting = Number(vestingRaw); + return { + circulating: (total - vesting).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/book.ts b/src/tokens/book.ts index bdca14d9..f1ddc61e 100644 --- a/src/tokens/book.ts +++ b/src/tokens/book.ts @@ -10,10 +10,12 @@ const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { "addr1v8dyqna76l9uh3sg93hvp8h40c8h0ecsw0yfa5dtq5hgvzc5572e2", // swap send in "addr1w99gfdcmxwe2ahe9ncjekntn2fhcpusj55874g4m7f4c7kqy3rq23", // swap contract "addr1w9223trzcvg75wwlaeprls9zwcf8nu8l5y92t9kk2all2jqk6sg93", // lock contract + "addr1w9fyvw2lq6hahnsedxvur32cs3at2ytqsxsu697h9ytg0xghu565k", // lock contract "addr1v85pply2a5dgxg220ymw3qsg6h478vjeymppexpsvdpzqtcfarzsy", // read to earn "addr1vyed0f2pcau4ww4yjqx4r53jqf3fy9sfahc57g7ucqxrcecrp4tg0", // dex liquidity and yield farming rewards "addr1v8gnwyfxh2w7lmn6vau92gura99cs9rhxhvr4l8nprz8s5qhlk9ed", // stake pool + "addr1qxeuqscp0l85sd54nlfrcjdg752xs0vwn5f3vllvn3eexgwhy3954pmhklwxjz05vsx0qt4yw4a9275eldyrkp0c0hlqskr4re", // sundae rewards holding "addr1v89mtmf0gfqde8lfuzrssmucupkx7zj2uy9kht3eaa3cp7s773n2z", // gutenberg holders "addr1v8glyfdnwewtt586yvmpg27zjm6v7ld3yxau5jtugtzzhkq2n9pgc", // golden bookmark "addr1vx558m3dchudjts98lhw7sxpx996f535gkwexvn5tp0t3js38kk50", // development diff --git a/src/tokens/boon.ts b/src/tokens/boon.ts new file mode 100644 index 00000000..2da308c8 --- /dev/null +++ b/src/tokens/boon.ts @@ -0,0 +1,62 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const BOON = + "1cd92100fc05fce7416b3857a079780164eeaf8f5613f4b814f24e09426f6f6e436f696e"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 77_777_777_777; + + const donationRaw = await getAmountInAddresses(blockFrost, BOON, [ + "addr1qy6up60du0r2rufjwsrf457jyssm9xnsysmgaqq934pf9gyv7h2adx0trglt75d4m0uaccftfnekt54fm9lxldfantjqyrejes", + ]); + + const farmingRaw = await getAmountInAddresses(blockFrost, BOON, [ + "addr1q8wvyukwhvykzv3tc039wyj7udygg983daz673lemq7d6h9r3vsw8l62684wlvtzrsxm27hmhl7y9ulsruaxtvmuclcqw544l5", + ]); + + const liquidityPoolRaw = await getAmountInAddresses(blockFrost, BOON, [ + "addr1qxulpxynvfzxak6t6s3483f4wzq45vqssy50s378wg4g7dlq5udt9geu2937fcpfej9m4tk72y7v8ajqka9uayrp9sdq6gkwcy", + ]); + + const marketingRaw = await getAmountInAddresses(blockFrost, BOON, [ + "addr1qyn3efzf9hmxx7ep3d4mmuu7mkgthpgxfj5t5t7ws86yj6cdr6e7utkyhethe4rylepdlf7983dwwd3ge6zpcervvdasjys8tg", + ]); + + const presaleRaw = await getAmountInAddresses(blockFrost, BOON, [ + "addr1q9cej5hv7ayne342eee3yef3zlkaxaglx2upy0r0505xmlshuewv0v8ud8ncya6uarc7vekx0260tyfrgtr272032lrqj4g88j", + ]); + + const reserveRaw = await getAmountInAddresses(blockFrost, BOON, [ + "addr1qx9z7ldyrsqxx5alw8n4cpsy2q464fud62wuwqudrk5k0k7apqpv3s6z9h8we5svv6d806p9ed6yzjtt07kq6m6t6c8qzy9zcd", + ]); + + const giveawayRaw = await getAmountInAddresses(blockFrost, BOON, [ + "addr1qx62z87cxhxvcdmkd8qraw2fswva740msqgp3nw9peu62pgz0jyzekf0xrewx2u8rfakpfty7hdp5vttsmgmg0lzhfaspua7vx", + ]); + + const donation = Number(donationRaw); + const farming = Number(farmingRaw); + const liquidityPool = Number(liquidityPoolRaw); + const marketing = Number(marketingRaw); + const presale = Number(presaleRaw); + const reserve = Number(reserveRaw); + const giveaway = Number(giveawayRaw); + + return { + circulating: ( + total - + donation - + farming - + liquidityPool - + marketing - + presale - + reserve - + giveaway + ).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/box.ts b/src/tokens/box.ts new file mode 100644 index 00000000..f80128cc --- /dev/null +++ b/src/tokens/box.ts @@ -0,0 +1,20 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const BOX = + "f9a491442678bb2f90a3be676d1f888ce87330003ab7151f9efb3b68424f58"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 1e9; + const treasuryRaw = await getAmountInAddresses(blockFrost, BOX, [ + "stake1uytg7kp24lqu4rnq9eyyc7ja2xzwshgrtrtmddr7zzlguqgzjqyyc" + ]); + const treasury = Number(treasuryRaw); + return { + circulating: (total - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/bpt.ts b/src/tokens/bpt.ts new file mode 100644 index 00000000..819451c1 --- /dev/null +++ b/src/tokens/bpt.ts @@ -0,0 +1,25 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const BPT = "d42729a8559b38c5d13009d653e4086404234bdb535a97b945c6ea78425054"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 155_000_000_000_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, BPT, [ + "stake1uypqrgwhdktwdc0735wvtclvttu5nxp48fvq6mv742gmmhcjh0xu8", // Treasury + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, BPT, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // burn address + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/bubble.ts b/src/tokens/bubble.ts index a17781c7..d8170860 100644 --- a/src/tokens/bubble.ts +++ b/src/tokens/bubble.ts @@ -11,6 +11,8 @@ const TEAM_AND_DISTRIBUTORS = [ "addr1qxpeczj2lluh88sa2g3tm0e3fj39c34rlctmvcszjs67g6wjj9djsz0020h68nz3rxknzdh93nryqzhq6h9z0nnzf0rshrectt", // tosidrop distribution "addr1qxkmr0m22xeqludcg5rjdmecjxasu9fat0680qehtcsnftaadgykewa9ufvegeuca9yyq03d9v7ea2y2zthgu7hfgjtsddp6gr", // minswap farm distribution "addr1qx3wvec7uhweerzqaeezzepmrwft8sfpucgk50tsuluz8f8cfhlykwhxy66aazkjmfp4euf0yhpeezx3exncm7e69pvs7jetw6", // starcada distribution + "addr1qxt9njtjx52l37rrx8ceugaxedwer2737wnldyrk32y4wqkj3as3w0lcznwjlhzrqrvg720mzq8yz5x8va3gdyc0uxwslyyxf9", // adalot exchange vending + "addr1q8ctlczt8fqjntg3g2g3cpf697g72l2dl4m5ta978gtddp2gjv5xxe2nftrkfd0d3q3dwfc34j2fmrxlm5jw5ge3e6yq56j4ga", // adalot jackpot vending ]; const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { diff --git a/src/tokens/c3.ts b/src/tokens/c3.ts index f55cd929..551fca23 100644 --- a/src/tokens/c3.ts +++ b/src/tokens/c3.ts @@ -1,8 +1,20 @@ -import { SupplyFetcher } from "../types"; +import { defaultFetcherOptions,SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; -const fetcher: SupplyFetcher = async () => { +const C3 = + "8e51398904a5d3fc129fbf4f1589701de23c7824d5c90fdb9490e15a434841524c4933"; +const TREASURY_ADDRESSES = [ + "addr1q82wf56fmjxgv4xuhmdw5vsl8mkwvh8ag5q0hpm0t70kkj9kexs7kszymxq6f9400u4xkg5n428e92gkhk30x3m6h4ls6ya7lr", +]; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const treasury = + Number(await getAmountInAddresses(blockFrost, C3, TREASURY_ADDRESSES)) / + 1e6; const total = 100_000_000; return { + circulating: (total - treasury).toString(), total: total.toString(), }; }; diff --git a/src/tokens/cats.ts b/src/tokens/cats.ts new file mode 100644 index 00000000..4c9496be --- /dev/null +++ b/src/tokens/cats.ts @@ -0,0 +1,27 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const CATS = "bbb0be3f57598bbf6a7d6ce18a60700beceb6904923a6a555ca0345443415453"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 88_888_888_888_888_900; + const treasuryRaw = await getAmountInAddresses(blockFrost, CATS, [ + "stake1u923hpvm0kurh8mrav0rcrwfd0qfyguxq3wt9qjlynpqcjgrn8yu8", + "stake1u8fpm0l9wq6ukw7932vwkhlpthhwlk7hx4vx6xe35dzplaq6ckdj5", + "stake1u9a7k0k2t0amdsyyvuyvr6wfdk96egxculjs7ydmehc5ueqljenvv", + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, CATS, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", //$burnsnek + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/cerra.ts b/src/tokens/cerra.ts new file mode 100644 index 00000000..d17e56f5 --- /dev/null +++ b/src/tokens/cerra.ts @@ -0,0 +1,27 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const CERRA = "4342a3d3c15545a592bf38294dc75c7a1dd3550388303e3a06f4416d4345525241"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 50e6; + const treasuryRaw = await getAmountInAddresses(blockFrost, CERRA, [ + "stake1u98g0de8y36dywtn77h29yx4vvq0enrrptj7h5duk8j054cnkx4f0", + "stake1uxy65hljr7hfpxl0pq0vcd87ccgnlap3hsyex7u30xq5hncrlsrtc", + "stake1uxy34uvrwarmjglnhlwhrd78enprcs2anpk9y6u590k9xwcv3wq3x", + "stake1u8nvv344u5lf7t2m7zpc93jkx0vjax4ndljvjauvaw9ccjsn690j0", + "stake1uy4z60a3jf05f2d4524vjguk8zel8ahumlkd8z80kdy90yqnmk88f", + "stake1u8f9gavng935n454ydfm8qzwxcl58mymxs056kln8zhvqlggdle3x", + "addr1w9l6mmpe5h2htkut4hgyf0tkqn3ng59dmhwx3g8wuhjdy9cd0v7wr", + "stake1u8cja9hqxkm67aeyuw8uqudnmndua4nzpvlzdhrvejl842glyn9r8", + ]); + + const treasury = Number(treasuryRaw)/1e6; + return { + circulating: (total - treasury).toString(), + total: (total).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/chry.ts b/src/tokens/chry.ts index 02c68de5..0499c85c 100644 --- a/src/tokens/chry.ts +++ b/src/tokens/chry.ts @@ -3,9 +3,8 @@ import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; const CHRY = "75fcc276057db5fc48eae0e11453c773c8a54604c3086bf9d95ac1b743485259"; const TREASURY_ADDRESSES = [ - "stake1uxluurkaazlqyqfqn22acl6lprea52avn6da0q88yk46zfqrc93qj", - "stake1uxhksw267w4prvcvz4kw3xqy6jjwr04jv7n8vzjhzeu0fag2tgt9v", - "stake1u8ffzkegp8h48mare3g3ntf3xmjce3jqptsdtj38ee3yh3c9t4uum", // team tokens held at TosiDrop + "stake17ya8xvcc5h2mkeladwnw8vutr5qya3vau6z9dw7zgs6mmrgtqgz58", + "stake1u8ffzkegp8h48mare3g3ntf3xmjce3jqptsdtj38ee3yh3c9t4uum", // Community incentives + team tokens held at TosiDrop ]; const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { diff --git a/src/tokens/clarity.ts b/src/tokens/clarity.ts new file mode 100644 index 00000000..6b94980a --- /dev/null +++ b/src/tokens/clarity.ts @@ -0,0 +1,24 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const CLARITY = + "1e76aaec4869308ef5b61e81ebf229f2e70f75a50223defa087f807b436c61726974792044414f20546f6b656e"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 2e9; + const treasuryRaw = await getAmountInAddresses(blockFrost, CLARITY, [ + "stake1u934vrjj6cdw5rrd2vewahxu3nrd9wslhjlkvamd5kc8ytce7sjsk", // Strategic Partner Vesting Wallet + "stake1u8g43cjercws2x26xmtlukgg3nfy4m0l6uw6dqtcp0y5fhc5pm7q5", // Future Development Wallet + "stake1uxs3nf3qj4xuyv9t63vyhxq8glec3zcxw0a03vegwdzu6hglwwmld", // Team Vesting Wallet + "addr1w87vg0x4k2x95dlp7mrlef909lgk25kgajhk2dxzxk0tquclfp0at", // DAO treasury + ]); + + const treasury = Number(treasuryRaw) / 1e6; + return { + circulating: (total - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/ctv.ts b/src/tokens/ctv.ts new file mode 100644 index 00000000..5248a107 --- /dev/null +++ b/src/tokens/ctv.ts @@ -0,0 +1,22 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const CTV = "9f452e23804df3040b352b478039357b506ad3b50d2ce0d7cbd5f806435456"; + +const TREASURY_ADDRESSES = [ + "addr1qyjwhsj246x8nf9evkadxtt0crgg2qjp7mk76zdnm38r0qp397a6yhn3qpzwt3ekwvtmptfxd8427egmlrrmufxvkgtsna5evs", // $ctv4vaults - Vault Seeker NFT Staking Rewards + "addr1qy5u9xul7vfhn3gvk68zzqfxxl6uxy5n7j3kq39aet06f4qh8u90v36crqhfj4stq2vmj98lyqzryd5nfg4j5ca6cjmqq9xzgt", // $ctv_reserve - CTV Community Controlled Reserves +]; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 100_000_000; + const treasury = + Number(await getAmountInAddresses(blockFrost, CTV, TREASURY_ADDRESSES)); + return { + circulating: (total - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher; \ No newline at end of file diff --git a/src/tokens/daddy.ts b/src/tokens/daddy.ts new file mode 100644 index 00000000..24655367 --- /dev/null +++ b/src/tokens/daddy.ts @@ -0,0 +1,23 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const DADDY = "6e6098846537ca48ff18eac70b7f5040c69ba2c5570521b6eb00fdf56461646479"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + + const total = 100_000_000_000; + + const burnRaw = await getAmountInAddresses(blockFrost, DADDY, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // SNEK burn address + ]); + + const burn = Number(burnRaw); + + return { + circulating: (total - burn).toString(), + total: (total).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/danzo.ts b/src/tokens/danzo.ts new file mode 100644 index 00000000..1a4ee07d --- /dev/null +++ b/src/tokens/danzo.ts @@ -0,0 +1,25 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const DANZO = "bf3e19192da77dfadc7c9065944e50ca7e1a439d90833e3ae58b720a44414e5a4f"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 69e9; + const treasuryRaw = await getAmountInAddresses(blockFrost, DANZO, [ + "stake17xnecta77s7r3qp9aryd79tln2wc2qs24sx9gvf4npcyptgqq4p4s", + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, DANZO, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", //$burnsnek + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/ddos.ts b/src/tokens/ddos.ts new file mode 100644 index 00000000..587376aa --- /dev/null +++ b/src/tokens/ddos.ts @@ -0,0 +1,29 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const DDOS = "94bb5aa2fedb3a4097c91934c79634407f4634aa192587699ef927b744446f53"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + + const total = 10_000_000; + + const burnRaw = await getAmountInAddresses(blockFrost, DDOS, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // SNEK burn address + ]); + + const burn = Number(burnRaw); + + const teamRaw = await getAmountInAddresses(blockFrost, DDOS, [ + "addr1qxt6fmumauv24fszmfngncs695yj0e9etqsr7lm5ym4zude4alypnn0x8ckrucs8tga0lfl5v48ec656shce0fgpa3fq3dq4hq", // $ddosfund + ]); + + const team = Number(teamRaw); + + return { + circulating: (total - burn - team).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/fet.ts b/src/tokens/fet.ts index 42323bc4..54eedd53 100644 --- a/src/tokens/fet.ts +++ b/src/tokens/fet.ts @@ -10,13 +10,11 @@ const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { const assetInfo = await blockFrost.assetsById(FET); const onchainSupply = Number(assetInfo?.quantity) / 1e10; const treasuryRaw = await getAmountInAddresses(blockFrost, FET, [ - "stake1uyyxjvthz4udwdrzr9pkkudpylasg99ufdzu7gpdfckxf2s5peell", // fe.dex.funds - "stake1ux94pdq42nwx0g24ea3myjcnd8tvl354ku4ygedtgm7sfgc2hugz9", // fe.reserve.fund - "stake1uxerycuwj09h2n6wydjp4vk936la23p9dvn37ezlkmdl5ycq38hr4", // fe.dev.funds - "stake1uypwcfxvg7uyzkyeue8fglq6fx7uxmampr2ahylyy4rg38cvky2pr", // fraction.estate - "stake1ux7pa94sgkzd0yawsu9e9ddj0vr07psyezksfek24m9wn2qtjf62u", // fe.market.funds - "stake1uy74mhj5x3jdf8d9446xcwrw723pvqelksxwwxu5c6t799qcnww0q", // fe.charity.fund - "stake1u8qzt94vyvfvvs4qan02axtfwj2hz4dcqefpehara5rdh4q6h9xka", // founder - daniel johnsen + "stake1uyedlzmcwtn63sjmvau4rgr5jwwd98jzqv8lc5fe7v36c2gy7y3mq", // fe.dex.funds + "stake1u9j7m6yrzw6ue0g2wyesqppf9qkkk86ac5x6gqy6axmx9xqtcv3n5", // Pending Burn Wallet + "stake1uxs45y65rgrq9kzk4wjqf9wannky3vn3unhpy40jykg8fscnqdz2j", // fraction.estate + "stake1uxa33njpprvxrjwtgpwechlf7y3kcxw6ddj2hf5s8e4z77snr6znd", // fe.charity.fund + "stake1uytl9a6eup867pd4ljz9q5y968qpd0j9hg3e9luhh0dm9sqw2grpe", // founder - daniel johnsen "addr1wy08wwdmpp6wtkzzjnghpxn0wtm9zyp69s4fxe675yv06cs70pjxk", // Staking Rewards Vyfi "stake1uxmyhzdqv6e57xwkz3z93v996v3ktdctlda44jv76ese5pqwwg7ue", // Farming Rewards Vyfi "stake1uyuxqkvqwngv86g9m804kjnhmvunc52kk4kl8cm8fck5kwcjmx8sg", // Rewards Treasury Vyfi diff --git a/src/tokens/flesh.ts b/src/tokens/flesh.ts new file mode 100644 index 00000000..88f25b94 --- /dev/null +++ b/src/tokens/flesh.ts @@ -0,0 +1,33 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const FLESH = + "a1ce0414d79b040f986f3bcd187a7563fd26662390dece6b12262b52464c45534820544f4b454e"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 420_000_000_000_000_000; + const treasury_team_and_distributorsRaw = await getAmountInAddresses( + blockFrost, + FLESH, + [ + "addr1qx7454h55m7mddcqfjm36fm7nmy8n09360w3mqgn8ucsqc6676h2cefplfw3ja5fy3903a4xpaletxqk0pmt2ykwym7sp0un3u", // community wallet + "addr1qxpeczj2lluh88sa2g3tm0e3fj39c34rlctmvcszjs67g6wjj9djsz0020h68nz3rxknzdh93nryqzhq6h9z0nnzf0rshrectt", // tosidrop distribution + "addr1w858jt2qn8c7zaw4fdpccpeejwjsd38guu9kx3qmchg2k0cymsdmg", // dripdropz distribution + "addr1qxkmr0m22xeqludcg5rjdmecjxasu9fat0680qehtcsnftaadgykewa9ufvegeuca9yyq03d9v7ea2y2zthgu7hfgjtsddp6gr", // minswap farm distribution + ] + ); + + const burnRaw = await getAmountInAddresses(blockFrost, FLESH, [ + "addr1w8t6qhfx7cty7pg805adz62gjfkld0c70usezv4e4uxfk0sf0e2mj", // burn wallet + ]); + + const uncirculated = Number(treasury_team_and_distributorsRaw) / 1e1; + const burn = Number(burnRaw) / 1e1; + return { + circulating: (total - uncirculated - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/fren.ts b/src/tokens/fren.ts new file mode 100644 index 00000000..6c0f8660 --- /dev/null +++ b/src/tokens/fren.ts @@ -0,0 +1,27 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const fren = + "fc11a9ef431f81b837736be5f53e4da29b9469c983d07f321262ce614652454e"; + +const frenFetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 420_069_000_000; + + const treasuryRaw = await getAmountInAddresses(blockFrost, fren, [ + "addr1qxphpfyj20ktpnjlsq09kgwzgkxkuy34njxxkdsq73cjagg40rlcjxutu5pq06qu2nq03gz4lyswfyd9f65qc6fqgqcqmvr092", + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, fren, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default frenFetcher; diff --git a/src/tokens/gero.ts b/src/tokens/gero.ts index a2b213a5..17519f78 100644 --- a/src/tokens/gero.ts +++ b/src/tokens/gero.ts @@ -1,8 +1,19 @@ -import { SupplyFetcher } from "../types"; +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; -const fetcher: SupplyFetcher = async () => { +const gero = "10a49b996e2402269af553a8a96fb8eb90d79e9eca79e2b4223057b64745524f"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); const total = 500_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, gero, [ + "addr1q9ztglqsxh2z9axvqdxa3zx3d6jwshwpweyxfjqtkz4t74elsevp82m7t3ztwknpeusr9wagtmwmvx5p3qa0v5l47yhqvfadex", //team + "addr1qxh9m2x8gvu9jauh0uz0ad05jvrhx93avy3fa7yfujjtc9d70s467j6ahztju3pltp79zyk0z9ujlja44cjusjd3pckqze4zka", //advisor + "addr1qy0gugg7y6g2rkhmupaa4z837spqnf42x6ejgm3gur3uvqhgv6le9ntys7rtmm43ksp9e60uje6thlrgrx87wr4up2msgh0693", //ecosystem and rewards + ]); + const treasury = Number(treasuryRaw) / 1e6; return { + circulating: (total - treasury).toString(), total: total.toString(), }; }; diff --git a/src/tokens/girlfren.ts b/src/tokens/girlfren.ts new file mode 100644 index 00000000..141ab903 --- /dev/null +++ b/src/tokens/girlfren.ts @@ -0,0 +1,25 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const GIRLFREN = "20efaf13727eea5813e57530f1f9bb60fa8a986056b48c4b89d59b414769726c4672656e"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 69_420_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, GIRLFREN, [ + "stake1uyz9dgwqjdtqa36nn7mn4t6ptsu66dnd3c9uwv9luhkzlcgsa3v5h", // Treasury + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, GIRLFREN, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // burn address + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/gldsnek.ts b/src/tokens/gldsnek.ts new file mode 100644 index 00000000..7457e576 --- /dev/null +++ b/src/tokens/gldsnek.ts @@ -0,0 +1,25 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const gldsnek = "cdbbe391853676285131fe2de250e274dbeb5f9d98344e86c7b383d9474c44534e454b"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 78_000_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, gldsnek, [ + "addr1q8uu7utay9dfjyxqrdqmal3nn6g2q0x6zcg906cxdyl0z005f4expj22ee6clpveucn5r8qsxvc96pm2266re27y0gss6nrg7z", // Team + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, gldsnek, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // burn address + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; \ No newline at end of file diff --git a/src/tokens/gme.ts b/src/tokens/gme.ts new file mode 100644 index 00000000..570c7d48 --- /dev/null +++ b/src/tokens/gme.ts @@ -0,0 +1,21 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const GME = "e4b8e9d247d9aa043bb9e13b38989b11b02c595450e6313aebdf6c1f47616d6553746f70"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 21e6; + + const burnRaw = await getAmountInAddresses(blockFrost, GME, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", //$burnsnek + ]); + + const burn = Number(burnRaw); + return { + circulating: (total - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/gokeyv2.ts b/src/tokens/gokeyv2.ts new file mode 100644 index 00000000..3e802983 --- /dev/null +++ b/src/tokens/gokeyv2.ts @@ -0,0 +1,29 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const GOKEY = + "ab0dec21aa7d939ad124ffaf95faf8ed72b1018ff72fffd8f9974907474f4b4559"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const assetInfo = await blockFrost.assetsById(GOKEY); + const total = Number(assetInfo?.quantity) / 1e6; + + const treasuryRaw = await getAmountInAddresses(blockFrost, GOKEY, [ + "stake1uxectp3ej56dq8cmxz96h7g36xw5a4e0mlpyx9lm5rpqfgggdsfu8", // $gokey + "stake1uye2d70tlf6vkg6chq3l7v50e25cw8w4he34ge2zymgntnqksny6w", // $gokeydao + "stake1u8eu0cx5eqchx7hr4py0j0rnepx722klgwqpweardgqmx7cr230hu", + "stake1u8xujuxpuj0wxjm2n6qqff9l4nrjgpfdjr3ffaj006s4wmckvk0wj", // $gokeyispo + "stake1uyekd377dmet3vqyaawllvtz0xjjzxaq3k3ktl0g63zyrxch72pyc", + "stake1u95ear6v2rkdkj2ul4zeet07m6rq33q8c6rk476u8l6fz3cng6mrt", + "stake1u97dxtu3597x64mtkx47uz47vzfwr7tmktrkjweutd7xsggawhhnn" + ]); + const treasury = Number(treasuryRaw) / 1e6; + + return { + circulating: (total - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/gummy.ts b/src/tokens/gummy.ts new file mode 100644 index 00000000..8841a031 --- /dev/null +++ b/src/tokens/gummy.ts @@ -0,0 +1,26 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const GUMMY = + "394d8a0021c8825ad9385c1112009994e37b7b53c0c406d389d452db47756d6d79"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 10_000_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, GUMMY, [ + "stake1u8szpq85z7f9jv3nvtltzzkv025hpgaql2ec82v7lffse2cjg6lam", // $gummy-treasury + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, GUMMY, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // $burnsnek + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/jorge.ts b/src/tokens/jorge.ts new file mode 100644 index 00000000..20249c92 --- /dev/null +++ b/src/tokens/jorge.ts @@ -0,0 +1,27 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const JORGE = "c0a7eb16fa55a982c63976c34af6e42cb1b5aeb9ab2a7aaec06f6cd04a6f726765"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 1e9; + const treasuryRaw = await getAmountInAddresses(blockFrost, JORGE, [ + "stake1ux438zy2p4e5g8wqg0y8t3ydds02rmaf3eemj38nzn9ydgctfvyne", + "stake1uyft8nlwshrfttzyn8g394d3rx8cck3wusy9l086q35rq9g9e78qd", + "stake1u9psvwyfwskrvz22tlepfsenqzegd5jlyf8mf7hzwhar9mcqncm5y", + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, JORGE, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", //$burnsnek + ]); + + const treasury = Number(treasuryRaw)/1e4; + const burn = Number(burnRaw)/1e4; + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/louey.ts b/src/tokens/louey.ts index 4c6770ca..f914de74 100644 --- a/src/tokens/louey.ts +++ b/src/tokens/louey.ts @@ -5,6 +5,7 @@ const LOUEY = "ac11a1a07f04ec9efee4c46c359725922377ec5a4596bbed670cc920"; const TREASURY_ADDRESSES = [ "addr1qy6raw2ndg60u68g0rd079a84qh4y6625gysvzukc6r7u39247zav5n3h2vcpp2sktqxsaa8v44jypar3vk24gjs2jgqsy8hcv", // team "addr1q9esm0mhkhdjk8z83lcur4gwldygyedk8fxmhzldd7lp304kn0xh732vdqjwem8g3vzjhwh9s9fgteu4wnhmncw3j9nsmr4gl5", // marketing + "addr1qy9stn30dyku0qwgt4kzr66t9mkzxsmc3vkj6zyj5gnmgul8ung6d8zvmfj7ratseyv9jy8s4n2mf9xyl4stujsarlss7t7pjx", // burn ]; const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { diff --git a/src/tokens/lwh.ts b/src/tokens/lwh.ts new file mode 100644 index 00000000..6e8c0604 --- /dev/null +++ b/src/tokens/lwh.ts @@ -0,0 +1,25 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const LWH = "defe216460d594211631fcfbd354f361c04645d6a0cfeead3d6f62836c65767679776966686174"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { +const blockFrost = getBlockFrostInstance(options); +const total = Number(100_000_000); +const treasuryRaw = await getAmountInAddresses(blockFrost, LWH, [ + "stake1u9dz7rdqnx4rthc3rn9nt9mtvzve8tv6ek809c8z9ld89lspvnq2g", + "stake1u9u5ema2qm8wthrkf7gc8423sg24ey0ucpw6cknhymt2uysclzez4", + "stake1ux04u6ru8dduhsscza3309f2a86dxlzw6mx30va665d489gm2enja", + "stake1uyn63uqt3aqjlq7gvtqh33zdvl4u8g9dj62q9svly24l50ck7p4kh", + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", + "stake1u997nsgekunxnauepkhz57prz86clz7tm0fwgclnv3pupzg095yak", + "stake1u96vnsecj2dp6zeae8ywptp4u3fghkes8vrmwwpfwl47jysv8ksma" +]); + const treasury = Number(treasuryRaw); + return { + circulating: (total - treasury).toString(), + total: (total).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/manny.ts b/src/tokens/manny.ts new file mode 100644 index 00000000..3c42c7c0 --- /dev/null +++ b/src/tokens/manny.ts @@ -0,0 +1,21 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const MANNY = + "338c17dffaaefdb97ace91100724836178c3f9dd994a4798a66f546d4d414e4e59"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + // + const total = 10_000_000n; + const totalOnCardano = 10_000_000n; + const treasury = await getAmountInAddresses(blockFrost, MANNY, [ + "stake1uxmvymdlwu7rp7r3gclva7m9tgzy60xp3tkqtj2kh7d35nqumsfd2" + ]); + return { + circulating: (totalOnCardano - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/min.ts b/src/tokens/min.ts index adb10f29..88bc2731 100644 --- a/src/tokens/min.ts +++ b/src/tokens/min.ts @@ -10,6 +10,7 @@ const TREASURY_ADDRESSES = [ "addr1z9wdv59sq7zzy2l6gchq3247lz7ssfsxs45nj4njhwsp5uzj2c79gy9l76sdg0xwhd7r0c0kna0tycz4y5s6mlenh8pqzygnta", // DAO "addr1z9mjhq5c4s0smv2c92g9yvecpju3p8cfaneu8jzwq97ry62j2c79gy9l76sdg0xwhd7r0c0kna0tycz4y5s6mlenh8pqw9pw55", // incentives & partnerships "addr1zx0wxal6dz7rjzxk2mwfvj9564rp9uajqrscftx44tp6ha6j2c79gy9l76sdg0xwhd7r0c0kna0tycz4y5s6mlenh8pq83j9cv", // yield farming treasury + "addr1q8zntywq3fldecrqk4vl593sznvj7483ejcajnavvh2qpsvftaax5f3wasl5m49rtjw5pen938vr7863w0lfz94h0lfqldx3pu", // $min.dao-hot aka DAO hot wallet ]; const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { diff --git a/src/tokens/mira.ts b/src/tokens/mira.ts new file mode 100644 index 00000000..601c69da --- /dev/null +++ b/src/tokens/mira.ts @@ -0,0 +1,24 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const MIRA = "160a880d9fc45380737cb7e57ff859763230aab28b3ef6a84007bfcc4d495241"; +const TREASURY_ADDRESSES = [ + "stake1u8u8czgsydjjm4996maz3g8jkk48ft3ezwhnklna220w6pglrlsl4", + "stake1uydyqtn0ys86nwv8rp8l6933va4yzdtjx0zr0jseannm23gdm8uuc", + "stake1u8qjh854gy66knmpemu32pstmp5dy67txdya0cqlxeuwl3qpd5qxg", + "stake1u9afgy0npvt9sal5vzlm5t6n5uyvch8t9mmznhtkn9wjacgfdtldf" +]; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 1e9; // 1 billion + const treasury = + Number(await getAmountInAddresses(blockFrost, MIRA, TREASURY_ADDRESSES)) / + 1e2; + return { + circulating: (total - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/mrhankey.ts b/src/tokens/mrhankey.ts new file mode 100644 index 00000000..67eab554 --- /dev/null +++ b/src/tokens/mrhankey.ts @@ -0,0 +1,31 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const assetId = + "7c4389a89ae25d18c77c2347ee8df20b4a6278d34e6c550296eb710e4d7248616e6b6579"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + + const total = 121_719_970_109; + + const treasuryRaw = await getAmountInAddresses(blockFrost, assetId, [ + "addr1q9wpgjuvkq0vjz0j9gnmtsm78kywk89h00zmwdz0wd5u0dn68j687fzlz60n6y7gc72sszwlsr5kh6rllewj4ctxwvjsmvjfsx", // $mr.hankey + ]); + + const treasury = Number(treasuryRaw); + + const burnRaw = await getAmountInAddresses(blockFrost, assetId, [ + "addr1w93rz3ae8p3elzn0sqfu37hyzw0up98r2kgjjdmdq9wshmck40yr8", // hosky burn + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // snek burn + ]); + + const burn = Number(burnRaw); + + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/mtc.ts b/src/tokens/mtc.ts index 15ef3dc3..3867a468 100644 --- a/src/tokens/mtc.ts +++ b/src/tokens/mtc.ts @@ -2,23 +2,31 @@ import { defaultFetcherOptions, SupplyFetcher } from "../types"; import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; const MTC = "f6ac48c64aa7af16434d9f84e014d11fba38525b436acc338ff20b0d4d7463"; -const TEAM_ADDRESSES = [ - "addr1qxw6ltkkfapk934cfhj8aswpv6pj9ejlqtuszcr3vp3nkcyl4z8jmxwk2u8knrqgptuc3f56hqxenmp45qscmeyxg0xs96x9qy", // team 1 - "addr1qy567alv55pznmx8newdj77tghetevq2jr39t5uz7vrk208l95lxy69yvjzpx79wu6lsrq54as3ynftrg0t0ecyfd59sl5xcxv", // team 2 - "addr1qx5705wkfz897qul8cck2w2ke4uxshal8ghu0m3tncy0sasq9sp8s22znmvqlmka7g20jckxyazqhjehg5q6h3ek0shs9cslz8", // team 3 - "addr1qypnftnwqqghlv0t4n7tj4xynuvj635szue4lw0jh5nhwxkcsc7tl298q66tcrjumsqp8cmm4gaa2rh7dq5p6l0jj3jstvvp03", // team 4 - "addr1q8s602mue5ecqk53yj2xa6whk3kqyadtsgm74xp8938fkwzg5vcd98mzm8sf0a2dn80nwt2k98zjpj47yhde5vtz6tqsq65km9", // team 5 -]; const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { const blockFrost = getBlockFrostInstance(options); - const total = 1e6; // 1 million - const treasury = Number( - await getAmountInAddresses(blockFrost, MTC, TEAM_ADDRESSES) + const total = 1_000_000; + const treasury_team_and_distributorsRaw = await getAmountInAddresses( + blockFrost, + MTC, + [ + "addr1q8yll2vw2h2dhv7fccdxwfm95puje3zelredzmw97w34hdwm9dndrhqfvas9nvg7rgn8wrwnzxsj7wp2msuthuvfuwsq9e905k", // team 1 + "addr1q9hsauvnf9dt88skshp76t45hp27c9p6y9rv6au74s43uqjx7gax6jgkwyn7vhvqet6n05quma2y5wdghj5arlzmmjpq2xyg4t", // team 2 + "addr1qx42lkkh8qhnetve4cmx74mzqx4qkssxz9ltmsn8nmgcxxs6gw4tkslgkhp8m2pgkedxlhtx7e8k5dj5xn7yt88p54kq69nh0h", // team 3 + "addr1wxqg5vgp3fsh6ddmr0vhc5xuhrckhyav9emdtwpfmafaf5q63x6rc", // dripdropz distribution + "addr1qx3wvec7uhweerzqaeezzepmrwft8sfpucgk50tsuluz8f8cfhlykwhxy66aazkjmfp4euf0yhpeezx3exncm7e69pvs7jetw6", // starcada distribution + ] ); + + const burnRaw = await getAmountInAddresses(blockFrost, MTC, [ + "addr1w8qvvu0m5jpkgxn3hwfd829hc5kfp0cuq83tsvgk44752dsea0svn", // burn wallet + ]); + + const uncirculated = Number(treasury_team_and_distributorsRaw); + const burn = Number(burnRaw); return { - circulating: (total - treasury).toString(), - total: total.toString(), + circulating: (total - uncirculated - burn).toString(), + total: (total - burn).toString(), }; }; diff --git a/src/tokens/myusd.ts b/src/tokens/myusd.ts new file mode 100644 index 00000000..ec2b388d --- /dev/null +++ b/src/tokens/myusd.ts @@ -0,0 +1,16 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getBlockFrostInstance } from "../utils"; + +const MyUSD = "92776616f1f32c65a173392e4410a3d8c39dcf6ef768c73af164779c4d79555344"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const assetInfo = await blockFrost.assetsById(MyUSD); + const circulating = Number(assetInfo?.quantity) / 1e6; + return { + circulating: circulating.toString(), + total: circulating.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/nike.ts b/src/tokens/nike.ts new file mode 100644 index 00000000..e5fe3567 --- /dev/null +++ b/src/tokens/nike.ts @@ -0,0 +1,21 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const NIKE = "c881c20e49dbaca3ff6cef365969354150983230c39520b917f5cf7c4e696b65"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 1e9; + + const burnRaw = await getAmountInAddresses(blockFrost, NIKE, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", //$burnsnek + ]); + + const burn = Number(burnRaw); + return { + circulating: (total - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; \ No newline at end of file diff --git a/src/tokens/nmkr.ts b/src/tokens/nmkr.ts index 2b85f01a..ee199d30 100644 --- a/src/tokens/nmkr.ts +++ b/src/tokens/nmkr.ts @@ -3,17 +3,22 @@ import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; const NMKR = "5dac8536653edc12f6f5e1045d8164b9f59998d3bdc300fc928434894e4d4b52"; - const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { -const blockFrost = getBlockFrostInstance(options); -const total = Number(10_000_000_000); -const treasuryRaw = await getAmountInAddresses(blockFrost, NMKR, [ - "addr1q9j2atke2qg7ljjm795u2mf4wf4f2uk35f5t7984t62kqtxh7t5nw0qtt7g322gtayqrr7zmpvdrf24kc284uwmhqgas34y7tg", -]); + const blockFrost = getBlockFrostInstance(options); + const total = Number(10_000_000_000); + const treasuryRaw = await getAmountInAddresses(blockFrost, NMKR, [ + "addr1q9j2atke2qg7ljjm795u2mf4wf4f2uk35f5t7984t62kqtxh7t5nw0qtt7g322gtayqrr7zmpvdrf24kc284uwmhqgas34y7tg", + "addr1qx3qh43x9re55gue0drws079x3w4ke6gv6f6g5lke4gqtylptfpmf2xr4j3wz2ex4umqryvphvvd5wam0uhv52vkqrhqvq968f", + "addr1q8yn82xu942cl8ufhr4mpd78ga7sflum3hzhy3rp80dr9z98j67nfwq0r8z5tarz5mv9mg00c0y20pjaucwhnh46layqp5qjt0", + "addr1q92xvvh369cgq8cuwsn45909n7efcgspqe3ecyyng4nc8nfukcmcw2ua9murga6als0dkcfthm3ul8gsflpdsya0568qwdfude", + "addr1q80p8glcgjp564ntquxwynrnsp5qejexnjj90zy6f0am7t2k7xqu7nc2pnutpm7968zjcscjccalfq4cgy56adt6pljqpsuras", + "addr1qxn7ervc5au4flt9c6ww0rgukkwfhcxgzjxyjvxjzwx6zvg3p47letwa26eylt4mfa50zrx26f47acj00ukhjjee8q3svl2r9z", + "addr1qx0tpkhl3pxntqm4txf63adktaazcdr25luesckzcvg4gdyz45p0u5k20h5ak3hs6y4q2lx6ypk69fy5rm2lvc9wvhkqu9yk3g", + ]); const treasury = Number(treasuryRaw) / 1e6; return { circulating: (total - treasury).toString(), - total: (total).toString(), + total: total.toString(), }; }; diff --git a/src/tokens/noel.ts b/src/tokens/noel.ts new file mode 100644 index 00000000..37a241c9 --- /dev/null +++ b/src/tokens/noel.ts @@ -0,0 +1,20 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const NOEL = + "b17b04ec0b8fa48613d7c80bc09a810e8bc8297cbbb6e9f4949fd8424e4f454c"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 5_310_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, NOEL, [ + "addr1v94yd0rgueuum6964du46xcnp4qr3kzpsxjwpx8avqcnpkcdm8dru" + ]); + const treasury = Number(treasuryRaw); + return { + circulating: (total - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/nvl.ts b/src/tokens/nvl.ts new file mode 100644 index 00000000..397e753c --- /dev/null +++ b/src/tokens/nvl.ts @@ -0,0 +1,22 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const NVL = + "5b26e685cc5c9ad630bde3e3cd48c694436671f3d25df53777ca60ef4e564c"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 21e6; + const treasuryRaw = await getAmountInAddresses(blockFrost, NVL, [ + "stake179qxx9fyg59ad4x7vpnksxlkc93nsj5zc2v3hy8up2kangc7qzvzh", + "stake179kx2h763naj8nm8uujxe9q0xksnu8t05p5rzgxnmez9nsc8kpzhd", + ]); + + const treasury = Number(treasuryRaw) / 1e6; + return { + circulating: (total - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/pirate.ts b/src/tokens/pirate.ts new file mode 100644 index 00000000..66481936 --- /dev/null +++ b/src/tokens/pirate.ts @@ -0,0 +1,22 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const PIRATE = + "bdf6ea73a43efded4503bd78e60f0bbce9111f29d235f4b890096f87"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 3e9; // 3 billion + + const burnRaw = await getAmountInAddresses(blockFrost, PIRATE, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", //$burnsnek + ]); + + const burn = Number(burnRaw); + return { + circulating: (total - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/porke.ts b/src/tokens/porke.ts new file mode 100644 index 00000000..0ca042a4 --- /dev/null +++ b/src/tokens/porke.ts @@ -0,0 +1,11 @@ +import { SupplyFetcher } from "../types"; + +const fetcher: SupplyFetcher = async () => { + const total = 1_000_000_001; // 1B + return { + circulating: total.toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/punks.ts b/src/tokens/punks.ts new file mode 100644 index 00000000..b1b481ca --- /dev/null +++ b/src/tokens/punks.ts @@ -0,0 +1,25 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const punks = "e633efbf19a37500c6f22965af3130baa34c3a644a146662dd2d74a250554e4b53"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 100_000_000_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, punks, [ + "addr1q8hnlxtw0gsxy53n3wcdepnal9fu5zm02zu2uvtgg6mg64ls455xwpcsxhh8fzpdmfpwsy6ugja9crtnsnmrhxwr9dps9x7wzc", // $punkstoken + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, punks, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // $snekburnwallet + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/rausi.ts b/src/tokens/rausi.ts new file mode 100644 index 00000000..92a949de --- /dev/null +++ b/src/tokens/rausi.ts @@ -0,0 +1,26 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const RAUSI = "c80d335ae2206381ae3dfe07b1ef38e43af95736e7f5d4f150663c255241555349"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 8_000_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, RAUSI, [ + "addr1wy3vkt9xxc98rllr3urvx8cy2ws02fr4rf88n7cdeyzw8wqaqtffw", // Reserve, locked until 01-2025, updated 6.7.2024. + "addr1w9szsx54qadp2yqe2xqrh6fmta6vuvqwtd5zsk7ec6j9sasmxhv3w", // Reserve, locked until 06-2028 + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, RAUSI, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // burnsnek address + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/reit.ts b/src/tokens/reit.ts new file mode 100644 index 00000000..3909a6c2 --- /dev/null +++ b/src/tokens/reit.ts @@ -0,0 +1,26 @@ +import axios from "axios"; + +import { SupplyFetcher } from "../types"; + +const REIT = "52d4b39c2407ce020ab4abb785d820a3ad5a2fa07600d07a205e509f"; +const REIT_ASSET = `${REIT}52454954`; + +const fetcher: SupplyFetcher = async () => { + const total = 50_000_000; + + const instance = axios.create({ + baseURL: `https://cardano-mainnet.blockfrost.io/api/v0/`, + timeout: 1000, + headers: { project_id: process.env["BLOCKFROST_PROJECT_ID"] }, + }); + + const assetInfo = await instance.get(`assets/${REIT_ASSET}`); + const total_mint = assetInfo.data.quantity; + + return { + circulating: total_mint, + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/rex.ts b/src/tokens/rex.ts new file mode 100644 index 00000000..1f031a9c --- /dev/null +++ b/src/tokens/rex.ts @@ -0,0 +1,22 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const rex = + "61fe4feee9d051c75b20d11701c3154ae95d9857bd429ffb85087eae526578"; + +const rexFetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 1_000_000_000; + + const burnRaw = await getAmountInAddresses(blockFrost, rex, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", + ]); + + const burn = Number(burnRaw); + return { + circulating: (total - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default rexFetcher; diff --git a/src/tokens/rsbtc.ts b/src/tokens/rsbtc.ts new file mode 100644 index 00000000..b4e4db0d --- /dev/null +++ b/src/tokens/rsbtc.ts @@ -0,0 +1,39 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const RSBTC = + "2dbc49f682ad21f6d18705cf446f9f7a277731ab70ae21a454f888b27273425443"; + +const ROSEN_BRIDGE_VAULT_ADDRESSES = [ + "addr1x8x6ca648w25x085dg8xs6k5e69yemr5hakcnl0gshmal6gahwzvy33q3jhr74lurpr9p0n8derw58fh7snq2zwxe8zsdkcqrj", +]; + +const ROSEN_BRIDGE_LOCK_ADDRESSES = [ + "addr1v8kqhz5lkdxqm8qtkn4lgd9f4890v0j6advjfmk5k9amu4c535lsu", +]; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 21_000_000; + + const rosenBridgeVault = + Number( + await getAmountInAddresses( + blockFrost, + RSBTC, + ROSEN_BRIDGE_VAULT_ADDRESSES + ) + ) / 1e8; + + const rosenBridgeLock = + Number( + await getAmountInAddresses(blockFrost, RSBTC, ROSEN_BRIDGE_LOCK_ADDRESSES) + ) / 1e8; + + return { + circulating: (total - rosenBridgeVault - rosenBridgeLock).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/rsrsn.ts b/src/tokens/rsrsn.ts new file mode 100644 index 00000000..8719789c --- /dev/null +++ b/src/tokens/rsrsn.ts @@ -0,0 +1,39 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const RSRSN = + "04b95368393c821f180deee8229fbd941baaf9bd748ebcdbf7adbb14727352534e"; + +const ROSEN_BRIDGE_VAULT_ADDRESSES = [ + "addr1x8x6ca648w25x085dg8xs6k5e69yemr5hakcnl0gshmal6gahwzvy33q3jhr74lurpr9p0n8derw58fh7snq2zwxe8zsdkcqrj", +]; + +const ROSEN_BRIDGE_LOCK_ADDRESSES = [ + "addr1v8kqhz5lkdxqm8qtkn4lgd9f4890v0j6advjfmk5k9amu4c535lsu", +]; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 1_000_000_000; + + const rosenBridgeVault = + Number( + await getAmountInAddresses( + blockFrost, + RSRSN, + ROSEN_BRIDGE_VAULT_ADDRESSES + ) + ) / 1e3; + + const rosenBridgeLock = + Number( + await getAmountInAddresses(blockFrost, RSRSN, ROSEN_BRIDGE_LOCK_ADDRESSES) + ) / 1e3; + + return { + circulating: (total - rosenBridgeVault - rosenBridgeLock).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/scale.ts b/src/tokens/scale.ts new file mode 100644 index 00000000..72c124fe --- /dev/null +++ b/src/tokens/scale.ts @@ -0,0 +1,29 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const SCALE = "1f01188ffed79a9296d824c49eec851c21ea860e7c4f88324de50f2c7363616c65"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 40_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, SCALE, [ + "stake1u8mceu7uqd943my6k3mmja9j7rm5kjg7ezgnzwcfqvranfsl0p2ku", // $scale.ipdholder + "stake1uy9tsassdgfqpkdxmtusnd7r39z3j5sp2judhl7g449jltgr4kkx5", // $partner.market + "stake1u86fxn5kx4s0qsh0zj4xkzs4xsrkl9pku3xjughdyhva86qhs4eem", // $scale.ispo.drip + "stake1u8sm7tl8u0n6yc8vlzpds06cpqclen490tptxn223zaq20scvlgtj", // $scale.vaultfeed + "stake1uykxdu30uduseadh5zwj43f88um8dr9y6renkf6e9mjerys84df64", // $scale.vesting + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, SCALE, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // burn address + ]); + + const treasury = Number(treasuryRaw) / 1e6; + const burn = Number(burnRaw) / 1e6; + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/shards.ts b/src/tokens/shards.ts index 1ae8136f..9b650b9c 100644 --- a/src/tokens/shards.ts +++ b/src/tokens/shards.ts @@ -6,14 +6,16 @@ const TOKEN = const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { const blockFrost = getBlockFrostInstance(options); - const total = 5_000_000; + const total = 4_998_034; //https://cardanoscan.io/token/ea153b5d4864af15a1079a94a0e2486d6376fa28aafad272d15b243a0014df10536861726473 const treasuryRaw = await getAmountInAddresses(blockFrost, TOKEN, [ "addr1w95dsllnucgg53lj8qhdcgjnw40hlsctkeh8udt7uhud2tgjfyagq", // DripDropz Instant Rewards "stake17yavsn3jqqxm29tcgrjpj8e960tf00hkkvzaqxv6tt8ud7s4kw5vn", // GameFi Incentives Reserves "addr1wx4ua0djv8c4fvkl8t08z0duf3lw8fl4qujvevwx4m9c7ygma04rr", // Blockchain-wide Distribution (Cardano) & SHARDS/ADA LP Rewards "stake17yqphvez52gkae448avqr5smpztvlrwmwsvfhgmp84laxes3zfyq0", // Private Investors - "stake178yzhvwqsw56qnz3lj4heu08m7tvl9z95zk4e2tpj4y8wkc7wmpzz", // FPS Treasury + "stake17yz7hzlx3fp3sfpagfhkwxjwuhr7ew9te676fa9zxdvpzccs2hvfx", // FPS Treasury "stake1u8yt8czlj5svzc4jvr3w230tsjklctw4tvhz43k5recvfvqwnvelg", // FPS Team Wallet + "addr1z8cw3tst2mp2l3y7tkwv9nnz8wef63yg9ufevn4kwnq6rq275jq4yvpskgayj55xegdp30g5rfynax66r8vgn9fldndsjgezmx", // SaturnNFTio Static Staking Contract + "addr1q8dp4sagd487pa5zjcfh3w6e6nsw9mgkuwtkpdw40ge432jnc0dqf7yufrtw3nsexjzghgdrnqpn8q8gandf3tk4jp0sjemnsw", // Danketsu Hustle Platform x FPS Missions Rewards ]); const treasury = Number(treasuryRaw) / 1e6; return { diff --git a/src/tokens/sharky.ts b/src/tokens/sharky.ts new file mode 100644 index 00000000..f1caf768 --- /dev/null +++ b/src/tokens/sharky.ts @@ -0,0 +1,25 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const SHARKY = "20fda53c96fc6ac5622ca94fd27a473c42c7ec56d0e96bceef926c91536861726b79"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 585_858_585_858; + const treasuryRaw = await getAmountInAddresses(blockFrost, SHARKY, [ + "addr1q9undvvv5ygner7arwp970m2q6hgwymmnewzm35wv00kexz5m9upnclmqh34548waj3qws89xd39q9cxy663v7ely87swr9425", // $sharkyteam + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, SHARKY, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", //$burnsnek + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/sharl.ts b/src/tokens/sharl.ts new file mode 100644 index 00000000..1d4345b3 --- /dev/null +++ b/src/tokens/sharl.ts @@ -0,0 +1,26 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const SHARL = + "590f6d119b214cdcf7ef7751f8b7f1de615ff8f6de097a5ce62b257b534841524c"; +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + + const total = 999_000_000_000; + const treasury_team_and_distributorsRaw = await getAmountInAddresses( + blockFrost, + SHARL, + [ + "addr1x8mpnsx06npcg40wnrk0umup7qcvyfz0nq7s5fv7pxdhk20kr8qvl4xrs327ax8vlehcrupscgjylxpapgjeuzvm0v5s0xgeht", // community wallet + ] + ); + + const uncirculated = Number(treasury_team_and_distributorsRaw); + + return { + circulating: (total - uncirculated).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/slop.ts b/src/tokens/slop.ts new file mode 100644 index 00000000..f6c5bd74 --- /dev/null +++ b/src/tokens/slop.ts @@ -0,0 +1,26 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const SLOP = "ea02c99c0668891d6b7cdc49e075cbddf9cd5b89404e5a8a8e5d7016534c4f5020436f696e"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 1_000_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, SLOP, [ + "stake1u8ugkt7a7p8wl4635lsjamepma9dvtyhye378g6z8vuvrqqujky50", // $slop + "stake1u9l00ughh8q2v7a6gd20fl3z2nq2ft0g4c2rr4pvucjwmvs2a9vfs", // $hogsweeper + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, SLOP, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // burn address + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/smoke.ts b/src/tokens/smoke.ts new file mode 100644 index 00000000..410be6ea --- /dev/null +++ b/src/tokens/smoke.ts @@ -0,0 +1,27 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const SMOKE = "dd00d877798443a2de57e5bc667784168616aa8244b558743e448784534d4f4b45"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 6_900_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, SMOKE, [ + "stake1uyzckf6tcr4d3mqu9y9z8xuqmjygsnj0pr5440fls49su8c4xygss", // $smoketeam + "stake1uxqs97h0whyzrfjesqn93gzv6k2e6chgw74ze3e20djtshgcq8xk4", // $smokemarketing + ]); + + const treasury = Number(treasuryRaw); + + const burnRaw = await getAmountInAddresses(blockFrost, SMOKE, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", //$burnsnek + ]); + const burn = Number(burnRaw); + + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/snok.ts b/src/tokens/snok.ts new file mode 100644 index 00000000..788c988d --- /dev/null +++ b/src/tokens/snok.ts @@ -0,0 +1,25 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const SNOK = "03dc510dbd1d1321edc06d8ae013f55fdd79f390c7415e2a09b64797534e4f4b"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 1e9; + const treasuryRaw = await getAmountInAddresses(blockFrost, SNOK, [ + "stake17x7ep02m028rqsnrqmse4zyn8nr3v80nkeshq73n2xddxnsmw0uuw", + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, SNOK, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", //$burnsnek + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/snuk.ts b/src/tokens/snuk.ts new file mode 100644 index 00000000..cbbd0d9b --- /dev/null +++ b/src/tokens/snuk.ts @@ -0,0 +1,26 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const SNUK = "246d6a8493dd02c1243ccae10b3275f318e4f3144140d05c4c28c422536e556b"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 100_000_000_000; + const treasuryRaw = await getAmountInAddresses(blockFrost, SNUK, [ + "stake1u8fa4qqljq4kz3hrwnmf76t9w383vl9058rs2mj767hg79g30xyee", // $Snuk + "stake1uxdxf8sjds7nrz8fymjyjrp5kw4cjtdvn6n69qrhkfz8jncnppg45", // $Snuk-staking + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, SNUK, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // burn address + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/splash.ts b/src/tokens/splash.ts new file mode 100644 index 00000000..b9443a08 --- /dev/null +++ b/src/tokens/splash.ts @@ -0,0 +1,23 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const SPLASH = "ececc92aeaaac1f5b665f567b01baec8bc2771804b4c21716a87a4e353504c415348"; +const TREASURY_ADDRESSES = [ + "addr1x96ug4cwkcj6azqmx235c543t8m08uljc742had6c35gzvllzldzmfztwhxahljux7gq8v85j75a9rwhnq4emqvg3uhs8qh80w", // Temporal inflation vault + "addr1q96p2l077gtj4cpn6md5lfwa39gqzkjum2hyvyrzfgmmk644xkv048skchrn36ekysu82z3rdk0m5xgysms6aj67ekfqy0eh3v", // Minting address + "addr1w8jxjly04tdcm8dvhuev4tvfrr9xtuquylf9f4679nnlkws3vwhzn", // Team vesting contract address +]; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 1e8; + const treasury = + Number(await getAmountInAddresses(blockFrost, SPLASH, TREASURY_ADDRESSES)) / + 1e6; + return { + circulating: (total - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/spx.ts b/src/tokens/spx.ts new file mode 100644 index 00000000..681306f0 --- /dev/null +++ b/src/tokens/spx.ts @@ -0,0 +1,20 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAxiosInstance } from "../utils"; + +type Response = { + circulating: string; + total: string; +}; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const axios = getAxiosInstance(options); + const resp = await axios( + "https://map.smart-places.io/api/token/circulating" + ).then((res) => res.data as Response); + return { + circulating: resp.circulating, + total: resp.total, + }; +}; + +export default fetcher; diff --git a/src/tokens/ssss.ts b/src/tokens/ssss.ts new file mode 100644 index 00000000..63d357fe --- /dev/null +++ b/src/tokens/ssss.ts @@ -0,0 +1,26 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const SSSS = + "4de3c5d6b555c99c7f56a1f917567288f025f337cdf233d99e462a1353737373"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 7_777_777_777; + const treasuryRaw = await getAmountInAddresses(blockFrost, SSSS, [ + "stake17xjrxzlfv3l9dtlykenxxf4zckh287hmwvzrg3pzhq7n6xqg39z66", // $Sssstreasury + ]); + + const burnRaw = await getAmountInAddresses(blockFrost, SSSS, [ + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // burn address + ]); + + const treasury = Number(treasuryRaw); + const burn = Number(burnRaw); + return { + circulating: (total - treasury - burn).toString(), + total: (total - burn).toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/tet.ts b/src/tokens/tet.ts new file mode 100644 index 00000000..859f2e91 --- /dev/null +++ b/src/tokens/tet.ts @@ -0,0 +1,25 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const TET = "6947eccc74ebf8c1716339b97af768bfbc70d330a743b79bbc5ccdeb544554"; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const assetInfo = await blockFrost.assetsById(TET); + const totalAmount = Number(assetInfo?.quantity); + + const lockAddresses = [ + "addr1wy669f5qjm82h3wj8vcy7lg8zs2n4us3ks62cssl84p730g92rwkw", // vault address + "addr1w96qxyn67hy2qgpz4tsulkpu0y3zv4wfq9fzgd38m07pnuq0w542k", // vesting address + ]; + + const lockedAmount = Number( + await getAmountInAddresses(blockFrost, TET, lockAddresses) + ); + return { + circulating: Number(totalAmount - lockedAmount).toString(), + total: totalAmount.toString(), + }; +}; + +export default fetcher; diff --git a/src/tokens/trtl.ts b/src/tokens/trtl.ts index faf442f3..2aa19cad 100644 --- a/src/tokens/trtl.ts +++ b/src/tokens/trtl.ts @@ -16,8 +16,11 @@ const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { const treasury = Number(treasuryRaw); const burnRaw = await getAmountInAddresses(blockFrost, TRTL, [ - "addr1xy9phln4e5q23w533z7nme7sxr3p6lpldqhsyc8u5qd9c2mudsgax8xq9e4qr8f4yu4cxsghtapg282z5wn0nyjgtmsspwevz8", + "addr1xy9phln4e5q23w533z7nme7sxr3p6lpldqhsyc8u5qd9c2mudsgax8xq9e4qr8f4yu4cxsghtapg282z5wn0nyjgtmsspwevz8", // 150 year lock "addr1x8gm0yhvdzv2a4n6rm02vfyez6x49nsj2dls4ml7t3rl7tw3k7fwc6yc4mt858k75cjfj95d2t8py5mlpthluhz8luks03cwcj", + "addr1z8snz7c4974vzdpxu65ruphl3zjdvtxw8strf2c2tmqnxzwccf8ywaly0m99ngq68lus48lmafut7ku9geawu8u6k49suv42qq", // min contract + "addr1w93rz3ae8p3elzn0sqfu37hyzw0up98r2kgjjdmdq9wshmck40yr8", // hosky burn + "addr1w8qmxkacjdffxah0l3qg8hq2pmvs58q8lcy42zy9kda2ylc6dy5r4", // snek burn ]); const burn = Number(burnRaw); diff --git a/src/tokens/vyfi.ts b/src/tokens/vyfi.ts index d6cb2bae..a9b297c2 100644 --- a/src/tokens/vyfi.ts +++ b/src/tokens/vyfi.ts @@ -7,7 +7,7 @@ const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { const blockFrost = getBlockFrostInstance(options); const total = 450_000_000; const treasuryRaw = await getAmountInAddresses(blockFrost, VYFI, [ - "stake1ux3rhes4an7469fqfw794cg8qaxltj3srhlprhast5v6wsqkm26ks", + "stake1u9rs4usucfu2ymfeeem2dnvfsdxl9sm7vpvd8pkc4cym8rsge78sh", ]); const treasury = Number(treasuryRaw) / 1e6; return { diff --git a/src/tokens/xray.ts b/src/tokens/xray.ts new file mode 100644 index 00000000..aae5ea29 --- /dev/null +++ b/src/tokens/xray.ts @@ -0,0 +1,21 @@ +import { defaultFetcherOptions, SupplyFetcher } from "../types"; +import { getAmountInAddresses, getBlockFrostInstance } from "../utils"; + +const XRAY = "86abe45be4d8fb2e8f28e8047d17d0ba5592f2a6c8c452fc88c2c14358524159"; +const TREASURY_ADDRESSES = [ + "addr1qyc98ysmvxunqslu3y5t9gpt2mm8dp3puylpq7n5n908jldw8w6w5nmvw86ullauxldxdjsfauyrattxw6yevxp72nnsq3lt0u", // stage2 fund +]; + +const fetcher: SupplyFetcher = async (options = defaultFetcherOptions) => { + const blockFrost = getBlockFrostInstance(options); + const total = 324_922_240; + const treasury = + Number(await getAmountInAddresses(blockFrost, XRAY, TREASURY_ADDRESSES)) / + 1e6; + return { + circulating: (total - treasury).toString(), + total: total.toString(), + }; +}; + +export default fetcher;