diff --git a/package.json b/package.json index 4e2aec11..4c7f8d8b 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "validate:json": "tsx scripts/validateJSON.ts", "validate:data": "tsx scripts/validateOnChainData/main.ts", "validate": "pnpm run validate:json && pnpm run validate:images && pnpm run validate:data", + "metadata:missing": "tsx scripts/manageVaultsFromApi.ts add", "lint": "biome lint .", "check": "biome check ." }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b27a102..73b90bff 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2752,6 +2752,7 @@ packages: '@walletconnect/ethereum-provider@2.21.1': resolution: {integrity: sha512-SSlIG6QEVxClgl1s0LMk4xr2wg4eT3Zn/Hb81IocyqNSGfXpjtawWxKxiC5/9Z95f1INyBD6MctJbL/R1oBwIw==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' '@walletconnect/events@1.0.1': resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==} @@ -2796,12 +2797,15 @@ packages: '@walletconnect/sign-client@2.21.0': resolution: {integrity: sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' '@walletconnect/sign-client@2.21.1': resolution: {integrity: sha512-QaXzmPsMnKGV6tc4UcdnQVNOz4zyXgarvdIQibJ4L3EmLat73r5ZVl4c0cCOcoaV7rgM9Wbphgu5E/7jNcd3Zg==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' '@walletconnect/sign-client@2.21.8': resolution: {integrity: sha512-lTcUbMjQ0YUZ5wzCLhpBeS9OkWYgLLly6BddEp2+pm4QxiwCCU2Nao0nBJXgzKbZYQOgrEGqtdm/7ze67gjzRA==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' '@walletconnect/time@1.0.2': resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} @@ -2817,12 +2821,15 @@ packages: '@walletconnect/universal-provider@2.21.0': resolution: {integrity: sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' '@walletconnect/universal-provider@2.21.1': resolution: {integrity: sha512-Wjx9G8gUHVMnYfxtasC9poGm8QMiPCpXpbbLFT+iPoQskDDly8BwueWnqKs4Mx2SdIAWAwuXeZ5ojk5qQOxJJg==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' '@walletconnect/universal-provider@2.21.8': resolution: {integrity: sha512-Nc1Z6VXnya152yucNDPnlTkrhG289tCUfcjiWqDmwNYzFSfdT5oJQHlnffQXlvoks90kn5Ru8Rnwag2CH1YOVQ==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' '@walletconnect/utils@2.21.0': resolution: {integrity: sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==} @@ -3861,11 +3868,12 @@ packages: glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} diff --git a/schemas/tokens.schema.json b/schemas/tokens.schema.json index c972c237..369247b3 100644 --- a/schemas/tokens.schema.json +++ b/schemas/tokens.schema.json @@ -12,7 +12,7 @@ }, "logoURI": { "type": "string", - "pattern": "^(https://raw.githubusercontent.com/berachain/metadata/[^\\s]+|https://(assets|coin-images).coingecko.com/[^\\s]+|https://res.cloudinary.com/duv0g402y/[^\\s]+)$" + "pattern": "^(https://raw.githubusercontent.com/berachain/metadata/[^\\s]+|https://(assets|coin-images).coingecko.com/[^\\s]+|https://res.cloudinary.com/duv0g402y/[^\\s]+|https://[^/]+\\.r2\\.cloudflarestorage\\.com/[^\\s]+|https://[^/]+\\.r2\\.dev/[^\\s]+)$" }, "tags": { "type": "object", @@ -55,7 +55,7 @@ }, "logoURI": { "type": "string", - "pattern": "^(https://raw.githubusercontent.com/berachain/metadata/[^\\s]+|https://(assets|coin-images).coingecko.com/[^\\s]+|https://res.cloudinary.com/duv0g402y/[^\\s]+)$" + "pattern": "^(https://raw.githubusercontent.com/berachain/metadata/[^\\s]+|https://(assets|coin-images).coingecko.com/[^\\s]+|https://res.cloudinary.com/duv0g402y/[^\\s]+|https://[^/]+\\.r2\\.cloudflarestorage\\.com/[^\\s]+|https://[^/]+\\.r2\\.dev/[^\\s]+)$" }, "base64": { "type": "string" diff --git a/schemas/validators.schema.json b/schemas/validators.schema.json index 4dcd866c..a7a4fe48 100644 --- a/schemas/validators.schema.json +++ b/schemas/validators.schema.json @@ -21,7 +21,7 @@ }, "logoURI": { "type": "string", - "pattern": "^(https://raw.githubusercontent.com/berachain/metadata/[^\\s]+|https://(assets|coin-images).coingecko.com/[^\\s]+|https://res.cloudinary.com/duv0g402y/[^\\s]+)$" + "pattern": "^(https://raw.githubusercontent.com/berachain/metadata/[^\\s]+|https://(assets|coin-images).coingecko.com/[^\\s]+|https://res.cloudinary.com/duv0g402y/[^\\s]+|https://[^/]+\\.r2\\.cloudflarestorage\\.com/[^\\s]+|https://[^/]+\\.r2\\.dev/[^\\s]+)$" }, "name": { "type": "string", diff --git a/schemas/vaults.schema.json b/schemas/vaults.schema.json index a6d9ecf1..32fc8355 100644 --- a/schemas/vaults.schema.json +++ b/schemas/vaults.schema.json @@ -58,7 +58,7 @@ }, "logoURI": { "type": "string", - "pattern": "^(https://raw.githubusercontent.com/berachain/metadata/[^\\s]+|https://(assets|coin-images).coingecko.com/[^\\s]+|https://res.cloudinary.com/duv0g402y/[^\\s]+)$" + "pattern": "^(https://raw.githubusercontent.com/berachain/metadata/[^\\s]+|https://(assets|coin-images).coingecko.com/[^\\s]+|https://res.cloudinary.com/duv0g402y/[^\\s]+|https://[^/]+\\.r2\\.cloudflarestorage\\.com/[^\\s]+|https://[^/]+\\.r2\\.dev/[^\\s]+)$" }, "url": { "type": "string", @@ -106,7 +106,7 @@ }, "logoURI": { "type": "string", - "pattern": "^(https://raw.githubusercontent.com/berachain/metadata/[^\\s]+|https://(assets|coin-images).coingecko.com/[^\\s]+|https://res.cloudinary.com/duv0g402y/[^\\s]+)$" + "pattern": "^(https://raw.githubusercontent.com/berachain/metadata/[^\\s]+|https://(assets|coin-images).coingecko.com/[^\\s]+|https://res.cloudinary.com/duv0g402y/[^\\s]+|https://[^/]+\\.r2\\.cloudflarestorage\\.com/[^\\s]+|https://[^/]+\\.r2\\.dev/[^\\s]+)$" }, "url": { "type": "string", diff --git a/src/assets/tokens/0x779ded0c9e1022225f8e0630b35a9b54be713736.png b/src/assets/tokens/0x779ded0c9e1022225f8e0630b35a9b54be713736.png new file mode 100644 index 00000000..82f81bd3 Binary files /dev/null and b/src/assets/tokens/0x779ded0c9e1022225f8e0630b35a9b54be713736.png differ diff --git a/src/assets/tokens/0xc0d1ac00a30fa4e30e44afc7313d6312c87e21df.png b/src/assets/tokens/0xc0d1ac00a30fa4e30e44afc7313d6312c87e21df.png new file mode 100644 index 00000000..41e30e3c Binary files /dev/null and b/src/assets/tokens/0xc0d1ac00a30fa4e30e44afc7313d6312c87e21df.png differ diff --git a/src/assets/vaults/0x14ba3f6d434c67cd8dce2ed7f66f74b62bfc6c32.png b/src/assets/vaults/0x14ba3f6d434c67cd8dce2ed7f66f74b62bfc6c32.png new file mode 100644 index 00000000..ac3f8e13 Binary files /dev/null and b/src/assets/vaults/0x14ba3f6d434c67cd8dce2ed7f66f74b62bfc6c32.png differ diff --git a/src/assets/vaults/0x199f156bba61496401dc2a009b5f69eb9a7e6f21.png b/src/assets/vaults/0x199f156bba61496401dc2a009b5f69eb9a7e6f21.png new file mode 100644 index 00000000..acc957b1 Binary files /dev/null and b/src/assets/vaults/0x199f156bba61496401dc2a009b5f69eb9a7e6f21.png differ diff --git a/src/assets/vaults/0x1b655141c514758f846bb8f5b261debb06704c48.png b/src/assets/vaults/0x1b655141c514758f846bb8f5b261debb06704c48.png new file mode 100644 index 00000000..d1123ca9 Binary files /dev/null and b/src/assets/vaults/0x1b655141c514758f846bb8f5b261debb06704c48.png differ diff --git a/src/assets/vaults/0x25acec3a1766a0d02d7c8e22f48533d32d7b311b.png b/src/assets/vaults/0x25acec3a1766a0d02d7c8e22f48533d32d7b311b.png new file mode 100644 index 00000000..3268ec3c Binary files /dev/null and b/src/assets/vaults/0x25acec3a1766a0d02d7c8e22f48533d32d7b311b.png differ diff --git a/src/assets/vaults/0x6cefb51b2c01d55d5e936a1ced25077aa961944c.png b/src/assets/vaults/0x6cefb51b2c01d55d5e936a1ced25077aa961944c.png new file mode 100644 index 00000000..6b233423 Binary files /dev/null and b/src/assets/vaults/0x6cefb51b2c01d55d5e936a1ced25077aa961944c.png differ diff --git a/src/assets/vaults/0x753291a2f75845c7d0b92d9c8b1636fc1f2f74a6.png b/src/assets/vaults/0x753291a2f75845c7d0b92d9c8b1636fc1f2f74a6.png new file mode 100644 index 00000000..ce5cb0a0 Binary files /dev/null and b/src/assets/vaults/0x753291a2f75845c7d0b92d9c8b1636fc1f2f74a6.png differ diff --git a/src/assets/vaults/0x89950d29bdab58670b295523da15623ec36c91ca.png b/src/assets/vaults/0x89950d29bdab58670b295523da15623ec36c91ca.png new file mode 100644 index 00000000..75767898 Binary files /dev/null and b/src/assets/vaults/0x89950d29bdab58670b295523da15623ec36c91ca.png differ diff --git a/src/assets/vaults/0xc196d595dece185ea39f8e1c3ce07a274ac31985.png b/src/assets/vaults/0xc196d595dece185ea39f8e1c3ce07a274ac31985.png new file mode 100644 index 00000000..ae8cf7c5 Binary files /dev/null and b/src/assets/vaults/0xc196d595dece185ea39f8e1c3ce07a274ac31985.png differ diff --git a/src/assets/vaults/0xfb1515f30c59a5acebdfd67dba6028f30acc7eaf.png b/src/assets/vaults/0xfb1515f30c59a5acebdfd67dba6028f30acc7eaf.png new file mode 100644 index 00000000..6b233423 Binary files /dev/null and b/src/assets/vaults/0xfb1515f30c59a5acebdfd67dba6028f30acc7eaf.png differ diff --git a/src/tokens/mainnet.json b/src/tokens/mainnet.json index b3715f5e..05d0ac9d 100644 --- a/src/tokens/mainnet.json +++ b/src/tokens/mainnet.json @@ -122,7 +122,7 @@ "symbol": "USDâ‚®0", "name": "Tether USD Coin", "decimals": 6, - "logoURI": "https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661", + "logoURI": "https://b90379be3d6b408ce6228aed59905e43.r2.cloudflarestorage.com/metadata/tokens/0x779ded0c9e1022225f8e0630b35a9b54be713736.png", "tags": ["stablecoin", "featured"], "extensions": { "coingeckoId": "tether", @@ -770,6 +770,15 @@ "logoURI": "https://raw.githubusercontent.com/berachain/metadata/refs/heads/main/src/assets/tokens/0x0F81001eF0A83ecCE5ccebf63EB302c70a39a654.png", "tags": [] }, + { + "chainId": 80094, + "address": "0xc0d1ac00a30fa4e30e44afc7313d6312c87e21df", + "name": "Kodiak token", + "symbol": "KDK", + "decimals": 18, + "logoURI": "https://b90379be3d6b408ce6228aed59905e43.r2.cloudflarestorage.com/metadata/tokens/0xc0d1ac00a30fa4e30e44afc7313d6312c87e21df.png", + "tags": [] + }, { "chainId": 80094, "address": "0xD6620E78B89E8fdB5dFA675D55001C7FaD424bDc", diff --git a/src/vaults/mainnet.json b/src/vaults/mainnet.json index 441dbf51..5a2d977c 100644 --- a/src/vaults/mainnet.json +++ b/src/vaults/mainnet.json @@ -400,6 +400,13 @@ "url": "https://app.lair.fi", "description": "Lair Finance is a DeFi protocol for liquidity management and yield optimization on Berachain." }, + { + "name": "LiquidRoyalty", + "logoURI": "https://res.cloudinary.com/duv0g402y/image/upload/v1766079866/protocols/liquidroyalty.png", + "url": "https://liquidroyalty.com", + "description": "Liquid Royalty Protocol is an RWA tokenization protocol that tokenizes e-commerce cashflow from top e-commerce merchants into royalty tokens.", + "tags": ["platform"] + }, { "name": "beraBTC", "logoURI": "https://res.cloudinary.com/duv0g402y/image/upload/v1746534876/tokens/default.png", @@ -3257,6 +3264,72 @@ "description": "Acquired by depositing wgBERA single sided on Dolomite Balance within the Earn Section.", "owner": "Smilee", "action": "Lend wgBERA on Dolomite" + }, + { + "stakingTokenAddress": "0x862050d3cbf4d8f7b9d2b6e0798ac4675f83cbe3", + "vaultAddress": "0x14ba3f6d434c67cd8dce2ed7f66f74b62bfc6c32", + "name": "Kodiak - KDK | WBTC", + "protocol": "Kodiak", + "categories": ["defi/amm"], + "logoURI": "https://b90379be3d6b408ce6228aed59905e43.r2.cloudflarestorage.com/metadata/vaults/0x14ba3f6d434c67cd8dce2ed7f66f74b62bfc6c32.png", + "url": "https://app.kodiak.finance/#/liquidity/pools/0x862050d3CbF4D8F7B9D2B6e0798Ac4675f83CBE3?chain=berachain_mainnet", + "description": "Acquired by depositing liquidity into the KDK | WBTC Pool on Kodiak", + "action": "Stake KDK / WBTC" + }, + { + "stakingTokenAddress": "0x393c64d313dc53f06e6228de9b71bed225e21c62", + "vaultAddress": "0x89950d29bdab58670b295523da15623ec36c91ca", + "name": "Kodiak - KDK | USDT0", + "protocol": "Kodiak", + "categories": ["defi/amm"], + "logoURI": "https://b90379be3d6b408ce6228aed59905e43.r2.cloudflarestorage.com/metadata/vaults/0x89950d29bdab58670b295523da15623ec36c91ca.png", + "url": "https://app.kodiak.finance/#/liquidity/pools/0x393c64D313Dc53f06E6228dE9B71BeD225e21C62?chain=berachain_mainnet", + "description": "Acquired by depositing liquidity into the KDK | USDT0 Pool on Kodiak", + "action": "Stake KDK / USDT0" + }, + { + "stakingTokenAddress": "0x4a25873f367261bf6bdd975ef836c5fd20bace30", + "vaultAddress": "0x753291a2f75845c7d0b92d9c8b1636fc1f2f74a6", + "name": "Kodiak - KDK | wBERA", + "protocol": "Kodiak", + "categories": ["defi/amm"], + "logoURI": "https://b90379be3d6b408ce6228aed59905e43.r2.cloudflarestorage.com/metadata/vaults/0x753291a2f75845c7d0b92d9c8b1636fc1f2f74a6.png", + "url": "https://app.kodiak.finance/#/liquidity/pools/0x4a25873F367261bf6bdD975EF836c5FD20bACe30?chain=berachain_mainnet", + "description": "Acquired by depositing liquidity into the KDK | wBERA Pool on Kodiak", + "action": "Stake KDK / wBERA" + }, + { + "stakingTokenAddress": "0x49298f4314eb127041b814a2616c25687db6b650", + "vaultAddress": "0xfb1515f30c59a5acebdfd67dba6028f30acc7eaf", + "name": "LiquidRoyalty - Senior Tranche", + "protocol": "LiquidRoyalty", + "categories": ["defi/yield"], + "logoURI": "https://b90379be3d6b408ce6228aed59905e43.r2.cloudflarestorage.com/metadata/vaults/0xfb1515f30c59a5acebdfd67dba6028f30acc7eaf.png", + "url": "https://liquidroyalty.com", + "description": "Stake USDe via LiquidRoyalty" + }, + { + "stakingTokenAddress": "0x09ceA16A2563c2d7D807C86f5b8da760389B5915", + "vaultAddress": "0x6cefb51b2c01d55d5e936a1ced25077aa961944c", + "name": "LiquidRoyalty - ALAR", + "protocol": "LiquidRoyalty", + "categories": ["defi/yield"], + "logoURI": "https://b90379be3d6b408ce6228aed59905e43.r2.cloudflarestorage.com/metadata/vaults/0x6cefb51b2c01d55d5e936a1ced25077aa961944c.png", + "url": "https://liquidroyalty.com", + "description": "Stake USDe in ALAR via LiquidRoyalty", + "action": "Stake USDe in LiquidRoyalty" + }, + { + "stakingTokenAddress": "0x4dad865ff99b431e0c02a02f8335b4400e4e5635", + "vaultAddress": "0x1b655141c514758f846bb8f5b261debb06704c48", + "name": "Foxify - FOX | USDC", + "protocol": "Kodiak", + "categories": ["defi/amm"], + "logoURI": "https://b90379be3d6b408ce6228aed59905e43.r2.cloudflarestorage.com/metadata/vaults/0x1b655141c514758f846bb8f5b261debb06704c48.png", + "url": "https://kodiak.foxify.trade/", + "description": "Acquired by depositing USDC and FOX into the FOX | USDC pool on Kodiak.", + "owner": "Foxify", + "action": "Stake FOX / USDC" } ] }