From d711afeb3b6a3c864a2d2209d78d9f22e1fe935e Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Fri, 22 Sep 2023 12:53:23 -0400 Subject: [PATCH 01/67] add vpn branch --- pages/[chain]/collection/[contract].tsx | 4 +- pages/_app.tsx | 32 +-- utils/chains.ts | 349 ++---------------------- 3 files changed, 35 insertions(+), 350 deletions(-) diff --git a/pages/[chain]/collection/[contract].tsx b/pages/[chain]/collection/[contract].tsx index d00ae159d..9960b39f4 100644 --- a/pages/[chain]/collection/[contract].tsx +++ b/pages/[chain]/collection/[contract].tsx @@ -329,8 +329,8 @@ const CollectionPage: NextPage = ({ id, ssr }) => { } }, [router.query]) - let nativePrice = collection.floorAsk?.price?.amount?.native - let topBidPrice = collection.topBid?.price?.amount?.native + let nativePrice = collection?.floorAsk?.price?.amount?.native + let topBidPrice = collection?.topBid?.price?.amount?.native return ( diff --git a/pages/_app.tsx b/pages/_app.tsx index 4bb943659..bac67a7b1 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -164,10 +164,10 @@ function MyApp({ options={{ //CONFIGURABLE: Override any configuration available in RK: https://docs.reservoir.tools/docs/reservoirkit-ui#configuring-reservoirkit-ui // Note that you should at the very least configure the source with your own domain - chains: supportedChains.map(({ proxyApi, id }) => { + chains: supportedChains.map(({ reservoirBaseUrl, id }) => { return { id, - baseApiUrl: `${baseUrl}${proxyApi}`, + baseApiUrl: reservoirBaseUrl, active: marketplaceChain.id === id, } }), @@ -182,21 +182,19 @@ function MyApp({ theme={reservoirKitTheme} > - - - - - - - - - - - + + + + + + + + + diff --git a/utils/chains.ts b/utils/chains.ts index 0cdf24129..737ce24c7 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -1,133 +1,9 @@ import { Currency } from '@reservoir0x/reservoir-kit-ui' import { zeroAddress } from 'viem' -import { - arbitrum, - mainnet, - polygon, - optimism, - Chain, - bsc, - avalanche, - goerli, - zkSync, -} from 'wagmi/chains' +import { Chain, goerli } from 'wagmi/chains' import usdcContracts from './usdcContracts' import wrappedContracts from './wrappedContracts' -//Chains that are missing from wagmi: -export const zora = { - id: 7777777, - name: 'ZORA', - network: 'zora', - nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, - rpcUrls: { - default: { - http: ['https://rpc.zora.co'], - webSocket: ['wss://rpc.zora.co'], - }, - public: { - http: ['https://rpc.zora.co'], - webSocket: ['wss://rpc.zora.co'], - }, - }, - blockExplorers: { - etherscan: { - name: 'ZORA', - url: 'https://explorer.zora.energy', - }, - default: { - name: 'ZORA', - url: 'https://explorer.zora.energy', - }, - }, -} as const satisfies Chain - -export const base = { - id: 8453, - name: 'Base', - network: 'base', - nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, - rpcUrls: { - default: { - http: ['https://developer-access-mainnet.base.org'], - }, - public: { - http: ['https://developer-access-mainnet.base.org'], - }, - }, - blockExplorers: { - etherscan: { - name: 'Basescan', - url: 'https://basescan.org', - }, - default: { - name: 'BaseScan', - url: 'https://basescan.org', - }, - }, -} as const satisfies Chain - -export const arbitrumNova = { - id: 42170, - name: 'Arbitrum Nova', - network: 'arbitrum-nova', - nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, - rpcUrls: { - blast: { - http: ['https://arbitrum-nova.public.blastapi.io'], - webSocket: ['wss://arbitrum-nova.public.blastapi.io'], - }, - default: { - http: ['https://nova.arbitrum.io/rpc'], - }, - public: { - http: ['https://nova.arbitrum.io/rpc'], - }, - }, - blockExplorers: { - etherscan: { name: 'Arbiscan', url: 'https://nova.arbiscan.io' }, - blockScout: { - name: 'BlockScout', - url: 'https://nova-explorer.arbitrum.io/', - }, - default: { name: 'Arbiscan', url: 'https://nova.arbiscan.io' }, - }, - contracts: { - multicall3: { - address: '0xca11bde05977b3631167028862be2a173976ca11', - blockCreated: 1746963, - }, - }, -} as const satisfies Chain - -export const linea = { - id: 59144, - name: 'Linea', - network: 'linea', - nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, - rpcUrls: { - default: { - http: ['https://rpc.linea.build'], - }, - public: { - http: ['https://rpc.linea.build'], - }, - infura: { - http: ['https://linea-mainnet.infura.io/v3'], - }, - }, - blockExplorers: { - etherscan: { - name: 'Linea Explorer', - url: 'https://explorer.linea.build', - }, - default: { - name: 'Linea Explorer', - url: 'https://explorer.linea.build', - }, - }, -} as const satisfies Chain - //CONFIGURABLE: The default export controls the supported chains for the marketplace. Removing // or adding chains will result in adding more or less chains to the marketplace. // They are an extension of the wagmi chain objects @@ -162,234 +38,45 @@ const usdcCurrencyBase = { } export const DefaultChain: ReservoirChain = { - ...mainnet, + ...goerli, // Any url to display the logo of the chain in light mode - lightIconUrl: '/icons/eth-icon-dark.svg', + lightIconUrl: '/icons/goerli-icon-dark.svg', // Any url to display the logo of the chain in dark mode - darkIconUrl: '/icons/eth-icon-light.svg', + darkIconUrl: '/icons/goerli-icon-light.svg', // The base url of the reservoir api, this is used in the app when // directly interacting with the reservoir indexer servers (in the api proxy for example) // or when prefetching server side rendered data - reservoirBaseUrl: 'https://api.reservoir.tools', + reservoirBaseUrl: 'https://api-goerli.dev.reservoir.tools', // Used on the client side portions of the marketplace that need an api key added // Prevents the api key from being leaked in the clientside requests // If you'd like to disable proxying you can just change the proxyApi to the reservoirBaseUrl // Doing so will omit the api key unless further changes are made - proxyApi: '/api/reservoir/ethereum', + proxyApi: '', // A prefix used in the asset specific routes on the app (tokens/collections) - routePrefix: 'ethereum', + routePrefix: 'goerli', // Reservoir API key which you can generate at https://reservoir.tools/ // This is a protected key and displays as 'undefined' on the browser // DO NOT add NEXT_PUBLIC to the key or you'll risk leaking it on the browser apiKey: process.env.RESERVOIR_API_KEY, // Coingecko id, used to convert the chain's native prices to usd. Can be found here: // https://www.coingecko.com/en/api/documentation#operations-coins-get_coins_list - coingeckoId: 'ethereum', - collectionSetId: process.env.NEXT_PUBLIC_ETH_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_ETH_COMMUNITY, - wssUrl: 'wss://ws.reservoir.tools', + coingeckoId: 'goerli-eth', + collectionSetId: process.env.NEXT_PUBLIC_GOERLI_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_GOERLI_COMMUNITY, listingCurrencies: [ nativeCurrencyBase, { ...usdcCurrencyBase, - contract: usdcContracts[mainnet.id], + contract: usdcContracts[goerli.id], + }, + { + symbol: 'WETH', + contract: wrappedContracts[goerli.id], + decimals: 18, + coinGeckoId: 'weth', }, ], oracleBidsEnabled: true, } -export default [ - DefaultChain, - { - ...polygon, - lightIconUrl: '/icons/polygon-icon-dark.svg', - darkIconUrl: '/icons/polygon-icon-light.svg', - reservoirBaseUrl: 'https://api-polygon.reservoir.tools', - proxyApi: '/api/reservoir/polygon', - routePrefix: 'polygon', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'matic-network', - collectionSetId: process.env.NEXT_PUBLIC_POLYGON_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_POLYGON_COMMUNITY, - - wssUrl: 'wss://ws-polygon.reservoir.tools', - listingCurrencies: [ - { - ...nativeCurrencyBase, - symbol: 'MATIC', - coinGeckoId: 'matic-network', - }, - { - ...usdcCurrencyBase, - contract: usdcContracts[polygon.id], - }, - { - contract: '0x7ceb23fd6bc0add59e62ac25578270cff1b9f619', - symbol: 'WETH', - decimals: 18, - coinGeckoId: 'weth', - }, - ], - oracleBidsEnabled: true, - }, - { - ...arbitrum, - name: 'Arbitrum', - lightIconUrl: '/icons/arbitrum-icon-dark.svg', - darkIconUrl: '/icons/arbitrum-icon-light.svg', - reservoirBaseUrl: 'https://api-arbitrum.reservoir.tools', - proxyApi: '/api/reservoir/arbitrum', - routePrefix: 'arbitrum', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'arbitrum-iou', - collectionSetId: process.env.NEXT_PUBLIC_ARBITRUM_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_ARBITRUM_COMMUNITY, - wssUrl: 'wss://ws-arbitrum.reservoir.tools', - listingCurrencies: [ - { ...nativeCurrencyBase, coinGeckoId: 'arbitrum-iou' }, - { - ...usdcCurrencyBase, - contract: usdcContracts[arbitrum.id], - }, - ], - }, - { - ...arbitrumNova, - lightIconUrl: '/icons/arbitrum-nova-icon-dark.svg', - darkIconUrl: '/icons/arbitrum-nova-icon-light.svg', - reservoirBaseUrl: 'https://api-arbitrum-nova.reservoir.tools', - proxyApi: '/api/reservoir/arbitrum-nova', - routePrefix: 'arbitrum-nova', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'ethereum', - collectionSetId: process.env.NEXT_PUBLIC_ARBITRUM_NOVA_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_ARBITRUM_NOVA_COMMUNITY, - }, - { - ...optimism, - name: 'Optimism', - lightIconUrl: '/icons/optimism-icon-dark.svg', - darkIconUrl: '/icons/optimism-icon-light.svg', - reservoirBaseUrl: 'https://api-optimism.reservoir.tools', - proxyApi: '/api/reservoir/optimism', - routePrefix: 'optimism', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'optimism', - collectionSetId: process.env.NEXT_PUBLIC_OPTIMISM_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_OPTIMISM_COMMUNITY, - wssUrl: 'wss://ws-optimism.reservoir.tools', - listingCurrencies: [ - { ...nativeCurrencyBase, coinGeckoId: 'optimism' }, - { - ...usdcCurrencyBase, - contract: usdcContracts[optimism.id], - }, - ], - }, - { - ...zora, - name: 'Zora', - lightIconUrl: '/icons/zora-icon-dark.svg', - darkIconUrl: '/icons/zora-icon-light.svg', - reservoirBaseUrl: 'https://api-zora.reservoir.tools', - proxyApi: '/api/reservoir/zora', - routePrefix: 'zora', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'ethereum', - }, - { - ...bsc, - lightIconUrl: '/icons/bsc-icon-dark.svg', - darkIconUrl: '/icons/bsc-icon-light.svg', - reservoirBaseUrl: 'https://api-bsc.reservoir.tools', - proxyApi: '/api/reservoir/bsc', - routePrefix: 'bsc', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'binancecoin', - collectionSetId: process.env.NEXT_PUBLIC_BSC_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_BSC_COMMUNITY, - wssUrl: 'wss://ws-bsc.reservoir.tools', - listingCurrencies: [ - { ...nativeCurrencyBase, coinGeckoId: 'binancecoin' }, - { - ...usdcCurrencyBase, - contract: usdcContracts[bsc.id], - }, - ], - }, - { - ...avalanche, - lightIconUrl: '/icons/avalanche-icon-dark.svg', - darkIconUrl: '/icons/avalanche-icon-light.svg', - reservoirBaseUrl: 'https://api-avalanche.reservoir.tools', - proxyApi: '/api/reservoir/avalanche', - routePrefix: 'avalanche', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'avalanche-2', - collectionSetId: process.env.NEXT_PUBLIC_AVALANCHE_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_AVALANCHE_COMMUNITY, - }, - { - ...base, - lightIconUrl: '/icons/base-icon-dark.svg', - darkIconUrl: '/icons/base-icon-light.svg', - reservoirBaseUrl: 'https://api-base.reservoir.tools', - proxyApi: '/api/reservoir/base', - routePrefix: 'base', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'ethereum', - collectionSetId: process.env.NEXT_PUBLIC_BASE_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_BASE_COMMUNITY, - }, - { - ...linea, - lightIconUrl: '/icons/linea-icon-dark.svg', - darkIconUrl: '/icons/linea-icon-light.svg', - reservoirBaseUrl: 'https://api-linea.reservoir.tools', - proxyApi: '/api/reservoir/linea', - routePrefix: 'linea', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'ethereum', - collectionSetId: process.env.NEXT_PUBLIC_LINEA_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_LINEA_COMMUNITY, - }, - { - ...goerli, - lightIconUrl: '/icons/goerli-icon-dark.svg', - darkIconUrl: '/icons/goerli-icon-light.svg', - reservoirBaseUrl: 'https://api-goerli.dev.reservoir.tools', - proxyApi: '/api/reservoir/goerli', - routePrefix: 'goerli', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'goerli-eth', - collectionSetId: process.env.NEXT_PUBLIC_GOERLI_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_GOERLI_COMMUNITY, - listingCurrencies: [ - nativeCurrencyBase, - { - ...usdcCurrencyBase, - contract: usdcContracts[goerli.id], - }, - { - symbol: 'WETH', - contract: wrappedContracts[goerli.id], - decimals: 18, - coinGeckoId: 'weth', - }, - ], - oracleBidsEnabled: true, - }, - { - ...zkSync, - name: 'zkSync', - lightIconUrl: '/icons/zksync-icon-dark.svg', - darkIconUrl: '/icons/zksync-icon-light.svg', - reservoirBaseUrl: 'https://api-zksync.reservoir.tools', - proxyApi: '/api/reservoir/zksync', - routePrefix: 'zksync', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'ethereum', - collectionSetId: process.env.NEXT_PUBLIC_ZKSYNC_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_ZKSYNC_COMMUNITY, - }, -] as ReservoirChain[] +export default [DefaultChain] as ReservoirChain[] From 68af12628cfe2c1fd28d83390b76a07c768cbe2c Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Fri, 22 Sep 2023 13:10:07 -0400 Subject: [PATCH 02/67] Prevent homepage from crashing due to bad response --- pages/[chain]/index.tsx | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/pages/[chain]/index.tsx b/pages/[chain]/index.tsx index a76566965..3a12ea12c 100644 --- a/pages/[chain]/index.tsx +++ b/pages/[chain]/index.tsx @@ -549,22 +549,25 @@ export const getServerSideProps: GetServerSideProps<{ supportedChains.find((chain) => chain.routePrefix === chainPrefix) || DefaultChain - const response = await fetcher( - `${chain.reservoirBaseUrl}/collections/top-selling/v2?period=24h&includeRecentSales=true&limit=9&fillType=sale`, - { - headers: { - 'x-api-key': chain.apiKey || '', - }, - } - ) - const topSellingCollections: ChainTopSellingCollections = {} - topSellingCollections[chain.id] = response.data - res.setHeader( - 'Cache-Control', - 'public, s-maxage=120, stale-while-revalidate=180' - ) + try { + const response = await fetcher( + `${chain.reservoirBaseUrl}/collections/top-selling/v2?period=24h&includeRecentSales=true&limit=9&fillType=sale`, + { + headers: { + 'x-api-key': chain.apiKey || '', + }, + } + ) + + topSellingCollections[chain.id] = response.data + + res.setHeader( + 'Cache-Control', + 'public, s-maxage=120, stale-while-revalidate=180' + ) + } catch (e) {} return { props: { ssr: { topSellingCollections } }, From ec60e3ef743935d79264934dd73ef837f9258da5 Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Fri, 22 Sep 2023 13:40:40 -0400 Subject: [PATCH 03/67] fix build error --- utils/chains.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/chains.ts b/utils/chains.ts index f7798e2ae..95bc3b589 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -2,7 +2,7 @@ import { Currency } from '@reservoir0x/reservoir-kit-ui' import { zeroAddress } from 'viem' import { Chain, goerli } from 'wagmi/chains' import usdcContracts from './usdcContracts' -import wrappedContracts from 'utils/wrappedContracts' +import wrappedContracts from './wrappedContracts' //CONFIGURABLE: The default export controls the supported chains for the marketplace. Removing // or adding chains will result in adding more or less chains to the marketplace. From e732bd0b9e2fa60653de0d4136a771376f5d7dd4 Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Fri, 22 Sep 2023 14:01:13 -0400 Subject: [PATCH 04/67] Fix token page --- pages/[chain]/asset/[assetId].tsx | 77 +++++++++++++++++-------------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index b5701cf30..4ea49143b 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -594,12 +594,14 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { ) } +type SSRProps = { + collection?: paths['/collections/v7']['get']['responses']['200']['schema'] + tokens?: paths['/tokens/v6']['get']['responses']['200']['schema'] +} + export const getServerSideProps: GetServerSideProps<{ assetId?: string - ssr: { - collection: paths['/collections/v7']['get']['responses']['200']['schema'] - tokens: paths['/tokens/v6']['get']['responses']['200']['schema'] - } + ssr: SSRProps }> = async ({ params, res }) => { const assetId = params?.assetId ? params.assetId.toString().split(':') : [] let collectionId = assetId[0] @@ -624,38 +626,43 @@ export const getServerSideProps: GetServerSideProps<{ includeDynamicPricing: true, } - const tokensPromise = fetcher( - `${reservoirBaseUrl}/tokens/v6`, - tokensQuery, - headers - ) - - const tokensResponse = await tokensPromise - const tokens = tokensResponse.data - ? (tokensResponse.data as Props['ssr']['tokens']) - : {} - - let collectionQuery: paths['/collections/v7']['get']['parameters']['query'] = - { - id: tokens?.tokens?.[0]?.token?.collection?.id, - normalizeRoyalties: NORMALIZE_ROYALTIES, - } - - const collectionsPromise = fetcher( - `${reservoirBaseUrl}/collections/v7`, - collectionQuery, - headers - ) - - const collectionsResponse = await collectionsPromise - const collection = collectionsResponse.data - ? (collectionsResponse.data as Props['ssr']['collection']) - : {} + let tokens: SSRProps['tokens'] + let collection: SSRProps['collection'] + + try { + const tokensPromise = fetcher( + `${reservoirBaseUrl}/tokens/v6`, + tokensQuery, + headers + ) + + const tokensResponse = await tokensPromise + tokens = tokensResponse.data + ? (tokensResponse.data as Props['ssr']['tokens']) + : {} + + let collectionQuery: paths['/collections/v7']['get']['parameters']['query'] = + { + id: tokens?.tokens?.[0]?.token?.collection?.id, + normalizeRoyalties: NORMALIZE_ROYALTIES, + } - res.setHeader( - 'Cache-Control', - 'public, s-maxage=30, stale-while-revalidate=60' - ) + const collectionsPromise = fetcher( + `${reservoirBaseUrl}/collections/v7`, + collectionQuery, + headers + ) + + const collectionsResponse = await collectionsPromise + collection = collectionsResponse.data + ? (collectionsResponse.data as Props['ssr']['collection']) + : {} + + res.setHeader( + 'Cache-Control', + 'public, s-maxage=30, stale-while-revalidate=60' + ) + } catch (e) {} return { props: { assetId: params?.assetId as string, ssr: { collection, tokens } }, From 32162f7a73b1d22dc98440e6a0c7cda6dc356c5a Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Fri, 22 Sep 2023 14:10:00 -0400 Subject: [PATCH 05/67] Fix serialization issue --- pages/[chain]/asset/[assetId].tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 4ea49143b..f01ac096e 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -595,8 +595,10 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { } type SSRProps = { - collection?: paths['/collections/v7']['get']['responses']['200']['schema'] - tokens?: paths['/tokens/v6']['get']['responses']['200']['schema'] + collection?: + | paths['/collections/v7']['get']['responses']['200']['schema'] + | null + tokens?: paths['/tokens/v6']['get']['responses']['200']['schema'] | null } export const getServerSideProps: GetServerSideProps<{ @@ -626,8 +628,8 @@ export const getServerSideProps: GetServerSideProps<{ includeDynamicPricing: true, } - let tokens: SSRProps['tokens'] - let collection: SSRProps['collection'] + let tokens: SSRProps['tokens'] = null + let collection: SSRProps['collection'] = null try { const tokensPromise = fetcher( From b9aac8bc3ead0c598f20f289d7fcdee5d5bbb21b Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Fri, 22 Sep 2023 14:18:07 -0400 Subject: [PATCH 06/67] Fix null check --- pages/[chain]/asset/[assetId].tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index f01ac096e..98c4da093 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -88,7 +88,7 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { includeQuantity: true, }, { - fallbackData: [ssr.tokens], + fallbackData: [ssr.tokens ? ssr.tokens : {}], } ) @@ -100,7 +100,7 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { id: token?.token?.collection?.id, }, { - fallbackData: [ssr.collection], + fallbackData: [ssr.collection ? ssr.collection : {}], } ) const collection = collections && collections[0] ? collections[0] : null @@ -667,7 +667,10 @@ export const getServerSideProps: GetServerSideProps<{ } catch (e) {} return { - props: { assetId: params?.assetId as string, ssr: { collection, tokens } }, + props: { + assetId: params?.assetId as string, + ssr: { collection, tokens }, + }, } } From 04931ee02186ec7e946621f7210577ecbf6a238e Mon Sep 17 00:00:00 2001 From: armando Date: Fri, 22 Sep 2023 11:56:01 -0700 Subject: [PATCH 07/67] feat: Add sepolia dev --- utils/chains.ts | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/utils/chains.ts b/utils/chains.ts index 95bc3b589..520443473 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -1,6 +1,6 @@ import { Currency } from '@reservoir0x/reservoir-kit-ui' import { zeroAddress } from 'viem' -import { Chain, goerli } from 'wagmi/chains' +import { Chain, goerli, sepolia } from 'wagmi/chains' import usdcContracts from './usdcContracts' import wrappedContracts from './wrappedContracts' @@ -79,4 +79,33 @@ export const DefaultChain: ReservoirChain = { oracleBidsEnabled: true, } -export default [DefaultChain] as ReservoirChain[] +export default [ + { + ...sepolia, + // Any url to display the logo of the chain in light mode + lightIconUrl: '/icons/goerli-icon-dark.svg', + // Any url to display the logo of the chain in dark mode + darkIconUrl: '/icons/goerli-icon-light.svg', + // The base url of the reservoir api, this is used in the app when + // directly interacting with the reservoir indexer servers (in the api proxy for example) + // or when prefetching server side rendered data + reservoirBaseUrl: 'https://api-sepolia-dev.reservoir.tools', + // Used on the client side portions of the marketplace that need an api key added + // Prevents the api key from being leaked in the clientside requests + // If you'd like to disable proxying you can just change the proxyApi to the reservoirBaseUrl + // Doing so will omit the api key unless further changes are made + proxyApi: '', + // A prefix used in the asset specific routes on the app (tokens/collections) + routePrefix: 'sepolia', + // Reservoir API key which you can generate at https://reservoir.tools/ + // This is a protected key and displays as 'undefined' on the browser + // DO NOT add NEXT_PUBLIC to the key or you'll risk leaking it on the browser + apiKey: process.env.RESERVOIR_API_KEY, + // Coingecko id, used to convert the chain's native prices to usd. Can be found here: + // https://www.coingecko.com/en/api/documentation#operations-coins-get_coins_list + coingeckoId: 'ethereum', + collectionSetId: process.env.NEXT_PUBLIC_SEPOLIA_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_SEPOLIA_COMMUNITY, + }, + DefaultChain, +] as ReservoirChain[] From d88460a2e29dcec632aeb287322c7bc70b245445 Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Mon, 25 Sep 2023 14:56:15 -0400 Subject: [PATCH 08/67] Fix dev chains --- utils/chains.ts | 325 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 285 insertions(+), 40 deletions(-) diff --git a/utils/chains.ts b/utils/chains.ts index 2327aab20..7002ff5da 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -1,8 +1,129 @@ import { Currency } from '@reservoir0x/reservoir-kit-ui' import { zeroAddress } from 'viem' -import { Chain, goerli, sepolia } from 'wagmi/chains' +import { + arbitrum, + mainnet, + polygon, + optimism, + Chain, + bsc, + avalanche, +} from 'wagmi/chains' import usdcContracts from './usdcContracts' -import wrappedContracts from './wrappedContracts' + +//Chains that are missing from wagmi: +export const zora = { + id: 7777777, + name: 'ZORA', + network: 'zora', + nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, + rpcUrls: { + default: { + http: ['https://rpc.zora.co'], + webSocket: ['wss://rpc.zora.co'], + }, + public: { + http: ['https://rpc.zora.co'], + webSocket: ['wss://rpc.zora.co'], + }, + }, + blockExplorers: { + etherscan: { + name: 'ZORA', + url: 'https://explorer.zora.energy', + }, + default: { + name: 'ZORA', + url: 'https://explorer.zora.energy', + }, + }, +} as const satisfies Chain + +export const base = { + id: 8453, + name: 'Base', + network: 'base', + nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, + rpcUrls: { + default: { + http: ['https://developer-access-mainnet.base.org'], + }, + public: { + http: ['https://developer-access-mainnet.base.org'], + }, + }, + blockExplorers: { + etherscan: { + name: 'Basescan', + url: 'https://basescan.org', + }, + default: { + name: 'BaseScan', + url: 'https://basescan.org', + }, + }, +} as const satisfies Chain + +export const arbitrumNova = { + id: 42170, + name: 'Arbitrum Nova', + network: 'arbitrum-nova', + nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, + rpcUrls: { + blast: { + http: ['https://arbitrum-nova.public.blastapi.io'], + webSocket: ['wss://arbitrum-nova.public.blastapi.io'], + }, + default: { + http: ['https://nova.arbitrum.io/rpc'], + }, + public: { + http: ['https://nova.arbitrum.io/rpc'], + }, + }, + blockExplorers: { + etherscan: { name: 'Arbiscan', url: 'https://nova.arbiscan.io' }, + blockScout: { + name: 'BlockScout', + url: 'https://nova-explorer.arbitrum.io/', + }, + default: { name: 'Arbiscan', url: 'https://nova.arbiscan.io' }, + }, + contracts: { + multicall3: { + address: '0xca11bde05977b3631167028862be2a173976ca11', + blockCreated: 1746963, + }, + }, +} as const satisfies Chain + +export const linea = { + id: 59144, + name: 'Linea', + network: 'linea', + nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, + rpcUrls: { + default: { + http: ['https://rpc.linea.build'], + }, + public: { + http: ['https://rpc.linea.build'], + }, + infura: { + http: ['https://linea-mainnet.infura.io/v3'], + }, + }, + blockExplorers: { + etherscan: { + name: 'Linea Explorer', + url: 'https://explorer.linea.build', + }, + default: { + name: 'Linea Explorer', + url: 'https://explorer.linea.build', + }, + }, +} as const satisfies Chain //CONFIGURABLE: The default export controls the supported chains for the marketplace. Removing // or adding chains will result in adding more or less chains to the marketplace. @@ -38,72 +159,196 @@ const usdcCurrencyBase = { } export const DefaultChain: ReservoirChain = { - ...goerli, + ...mainnet, // Any url to display the logo of the chain in light mode - lightIconUrl: '/icons/goerli-icon-dark.svg', + lightIconUrl: '/icons/eth-icon-dark.svg', // Any url to display the logo of the chain in dark mode - darkIconUrl: '/icons/goerli-icon-light.svg', + darkIconUrl: '/icons/eth-icon-light.svg', // The base url of the reservoir api, this is used in the app when // directly interacting with the reservoir indexer servers (in the api proxy for example) // or when prefetching server side rendered data - reservoirBaseUrl: 'https://api-goerli.dev.reservoir.tools', + reservoirBaseUrl: 'https://api.reservoir.tools', // Used on the client side portions of the marketplace that need an api key added // Prevents the api key from being leaked in the clientside requests // If you'd like to disable proxying you can just change the proxyApi to the reservoirBaseUrl // Doing so will omit the api key unless further changes are made - proxyApi: '', + proxyApi: '/api/reservoir/ethereum', // A prefix used in the asset specific routes on the app (tokens/collections) - routePrefix: 'goerli', + routePrefix: 'ethereum', // Reservoir API key which you can generate at https://reservoir.tools/ // This is a protected key and displays as 'undefined' on the browser // DO NOT add NEXT_PUBLIC to the key or you'll risk leaking it on the browser apiKey: process.env.RESERVOIR_API_KEY, // Coingecko id, used to convert the chain's native prices to usd. Can be found here: // https://www.coingecko.com/en/api/documentation#operations-coins-get_coins_list - coingeckoId: 'goerli-eth', - collectionSetId: process.env.NEXT_PUBLIC_GOERLI_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_GOERLI_COMMUNITY, + coingeckoId: 'ethereum', + collectionSetId: process.env.NEXT_PUBLIC_ETH_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_ETH_COMMUNITY, + wssUrl: 'wss://ws.reservoir.tools', listingCurrencies: [ nativeCurrencyBase, { ...usdcCurrencyBase, - contract: usdcContracts[goerli.id], - }, - { - symbol: 'WETH', - contract: wrappedContracts[goerli.id], - decimals: 18, - coinGeckoId: 'weth', + contract: usdcContracts[mainnet.id], }, ], oracleBidsEnabled: true, } export default [ + DefaultChain, + { + ...polygon, + lightIconUrl: '/icons/polygon-icon-dark.svg', + darkIconUrl: '/icons/polygon-icon-light.svg', + reservoirBaseUrl: 'https://api-polygon.reservoir.tools', + proxyApi: '/api/reservoir/polygon', + routePrefix: 'polygon', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'matic-network', + collectionSetId: process.env.NEXT_PUBLIC_POLYGON_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_POLYGON_COMMUNITY, + + wssUrl: 'wss://ws-polygon.reservoir.tools', + listingCurrencies: [ + { + ...nativeCurrencyBase, + symbol: 'MATIC', + coinGeckoId: 'matic-network', + }, + { + ...usdcCurrencyBase, + contract: usdcContracts[polygon.id], + }, + { + contract: '0x7ceb23fd6bc0add59e62ac25578270cff1b9f619', + symbol: 'WETH', + decimals: 18, + coinGeckoId: 'weth', + }, + ], + oracleBidsEnabled: true, + }, + { + ...arbitrum, + name: 'Arbitrum', + lightIconUrl: '/icons/arbitrum-icon-dark.svg', + darkIconUrl: '/icons/arbitrum-icon-light.svg', + reservoirBaseUrl: 'https://api-arbitrum.reservoir.tools', + proxyApi: '/api/reservoir/arbitrum', + routePrefix: 'arbitrum', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'arbitrum-iou', + collectionSetId: process.env.NEXT_PUBLIC_ARBITRUM_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_ARBITRUM_COMMUNITY, + wssUrl: 'wss://ws-arbitrum.reservoir.tools', + listingCurrencies: [ + { ...nativeCurrencyBase, coinGeckoId: 'arbitrum-iou' }, + { + ...usdcCurrencyBase, + contract: usdcContracts[arbitrum.id], + }, + ], + }, { - ...sepolia, - // Any url to display the logo of the chain in light mode - lightIconUrl: '/icons/goerli-icon-dark.svg', - // Any url to display the logo of the chain in dark mode - darkIconUrl: '/icons/goerli-icon-light.svg', - // The base url of the reservoir api, this is used in the app when - // directly interacting with the reservoir indexer servers (in the api proxy for example) - // or when prefetching server side rendered data - reservoirBaseUrl: 'https://api-sepolia-dev.reservoir.tools', - // Used on the client side portions of the marketplace that need an api key added - // Prevents the api key from being leaked in the clientside requests - // If you'd like to disable proxying you can just change the proxyApi to the reservoirBaseUrl - // Doing so will omit the api key unless further changes are made - proxyApi: '', - // A prefix used in the asset specific routes on the app (tokens/collections) - routePrefix: 'sepolia', - // Reservoir API key which you can generate at https://reservoir.tools/ - // This is a protected key and displays as 'undefined' on the browser - // DO NOT add NEXT_PUBLIC to the key or you'll risk leaking it on the browser + ...arbitrumNova, + lightIconUrl: '/icons/arbitrum-nova-icon-dark.svg', + darkIconUrl: '/icons/arbitrum-nova-icon-light.svg', + reservoirBaseUrl: 'https://api-arbitrum-nova.reservoir.tools', + proxyApi: '/api/reservoir/arbitrum-nova', + routePrefix: 'arbitrum-nova', apiKey: process.env.RESERVOIR_API_KEY, - // Coingecko id, used to convert the chain's native prices to usd. Can be found here: - // https://www.coingecko.com/en/api/documentation#operations-coins-get_coins_list coingeckoId: 'ethereum', + collectionSetId: process.env.NEXT_PUBLIC_ARBITRUM_NOVA_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_ARBITRUM_NOVA_COMMUNITY, + }, + { + ...optimism, + name: 'Optimism', + lightIconUrl: '/icons/optimism-icon-dark.svg', + darkIconUrl: '/icons/optimism-icon-light.svg', + reservoirBaseUrl: 'https://api-optimism.reservoir.tools', + proxyApi: '/api/reservoir/optimism', + routePrefix: 'optimism', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'optimism', + collectionSetId: process.env.NEXT_PUBLIC_OPTIMISM_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_OPTIMISM_COMMUNITY, + wssUrl: 'wss://ws-optimism.reservoir.tools', + listingCurrencies: [ + { ...nativeCurrencyBase, coinGeckoId: 'optimism' }, + { + ...usdcCurrencyBase, + contract: usdcContracts[optimism.id], + }, + ], + }, + { + ...zora, + name: 'Zora', + lightIconUrl: '/icons/zora-icon-dark.svg', + darkIconUrl: '/icons/zora-icon-light.svg', + reservoirBaseUrl: 'https://api-zora.reservoir.tools', + proxyApi: '/api/reservoir/zora', + routePrefix: 'zora', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'ethereum', + }, + { + ...bsc, + lightIconUrl: '/icons/bsc-icon-dark.svg', + darkIconUrl: '/icons/bsc-icon-light.svg', + reservoirBaseUrl: 'https://api-bsc.reservoir.tools', + proxyApi: '/api/reservoir/bsc', + routePrefix: 'bsc', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'binancecoin', + collectionSetId: process.env.NEXT_PUBLIC_BSC_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_BSC_COMMUNITY, + wssUrl: 'wss://ws-bsc.reservoir.tools', + listingCurrencies: [ + { ...nativeCurrencyBase, coinGeckoId: 'binancecoin' }, + { + ...usdcCurrencyBase, + contract: usdcContracts[bsc.id], + }, + ], + }, + { + ...avalanche, + lightIconUrl: '/icons/avalanche-icon-dark.svg', + darkIconUrl: '/icons/avalanche-icon-light.svg', + reservoirBaseUrl: 'https://api-avalanche.reservoir.tools', + proxyApi: '/api/reservoir/avalanche', + routePrefix: 'avalanche', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'avalanche-2', + collectionSetId: process.env.NEXT_PUBLIC_AVALANCHE_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_AVALANCHE_COMMUNITY, + }, + { + ...base, + lightIconUrl: '/icons/base-icon-dark.svg', + darkIconUrl: '/icons/base-icon-light.svg', + reservoirBaseUrl: 'https://api-base.reservoir.tools', + proxyApi: '/api/reservoir/base', + routePrefix: 'base', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'ethereum', + collectionSetId: process.env.NEXT_PUBLIC_BASE_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_BASE_COMMUNITY, + }, + { + ...linea, + lightIconUrl: '/icons/linea-icon-dark.svg', + darkIconUrl: '/icons/linea-icon-light.svg', + reservoirBaseUrl: 'https://api-linea.reservoir.tools', + proxyApi: '/api/reservoir/linea', + + routePrefix: 'linea', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'ethereum', + collectionSetId: process.env.NEXT_PUBLIC_LINEA_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_LINEA_COMMUNITY, }, - DefaultChain, ] as ReservoirChain[] From 6d304b39f11f4c8af3f71b5aaaf51df4b2af5a38 Mon Sep 17 00:00:00 2001 From: armando Date: Mon, 25 Sep 2023 15:10:28 -0400 Subject: [PATCH 09/67] Add zkEVM --- utils/chains.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/utils/chains.ts b/utils/chains.ts index 7002ff5da..90a28fe47 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -8,6 +8,7 @@ import { Chain, bsc, avalanche, + polygonZkEvm, } from 'wagmi/chains' import usdcContracts from './usdcContracts' @@ -338,6 +339,19 @@ export default [ collectionSetId: process.env.NEXT_PUBLIC_BASE_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_BASE_COMMUNITY, }, + { + ...polygonZkEvm, + lightIconUrl: '/icons/polygon-zkevm-icon-dark.svg', + darkIconUrl: '/icons/polygon-zkevm-icon-light.svg', + reservoirBaseUrl: 'https://api-polygon-zkevm.reservoir.tools', + proxyApi: '/api/reservoir/polygon-zkevm', + + routePrefix: 'polygon-zkevm', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'ethereum', + collectionSetId: process.env.NEXT_PUBLIC_POLYGON_ZKEVM_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_POLYGON_ZKEVM_COMMUNITY, + }, { ...linea, lightIconUrl: '/icons/linea-icon-dark.svg', From 7a4aab30e3401616f6405a51eadbd49eefb39d4a Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Thu, 28 Sep 2023 13:31:35 -0400 Subject: [PATCH 10/67] Add ancient8 --- utils/chains.ts | 39 +++++++++++++++++++++++++++++++++++++++ utils/wrappedContracts.ts | 1 + 2 files changed, 40 insertions(+) diff --git a/utils/chains.ts b/utils/chains.ts index 46f45afcc..e3a5edb83 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -127,6 +127,33 @@ export const linea = { }, } as const satisfies Chain +export const ancient8Testnet = { + id: 2863311531, + name: 'Ancient8 Testnet', + network: 'ancient8', + nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, + rpcUrls: { + default: { + http: ['https://rpc-testnet.ancient8.gg'], + webSocket: ['https://rpc-testnet.ancient8.gg'], + }, + public: { + http: ['https://rpc-testnet.ancient8.gg'], + webSocket: ['https://rpc-testnet.ancient8.gg'], + }, + }, + blockExplorers: { + etherscan: { + name: 'a8scan', + url: 'https://testnet.a8scan.io/', + }, + default: { + name: 'a8scan', + url: 'https://testnet.a8scan.io/', + }, + }, +} as const satisfies Chain + //CONFIGURABLE: The default export controls the supported chains for the marketplace. Removing // or adding chains will result in adding more or less chains to the marketplace. // They are an extension of the wagmi chain objects @@ -379,4 +406,16 @@ export default [ collectionSetId: process.env.NEXT_PUBLIC_ZKSYNC_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_ZKSYNC_COMMUNITY, }, + { + ...ancient8Testnet, + lightIconUrl: '', + darkIconUrl: '', + reservoirBaseUrl: 'https://api-ancient8-testnet.reservoir.tools', + proxyApi: '/api/reservoir/ancient8Testnet', + routePrefix: 'ancient8Testnet', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'ethereum', + collectionSetId: process.env.NEXT_PUBLIC_ANCIENT8TESTNET_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_NCIENT8TESTNET_COMMUNITY, + }, ] as ReservoirChain[] diff --git a/utils/wrappedContracts.ts b/utils/wrappedContracts.ts index d1572ffd3..f4281f4e2 100644 --- a/utils/wrappedContracts.ts +++ b/utils/wrappedContracts.ts @@ -16,6 +16,7 @@ const wrappedContracts: Record = { 534353: '0xa1EA0B2354F5A344110af2b6AD68e75545009a03', //scrolltestnet 7777777: '0x4200000000000000000000000000000000000006', //zora 11155111: '0x7b79995e5f793a07bc00c21412e50ecae098e7f9', //sepolia + 2863311531: '0x4200000000000000000000000000000000000006', //ancient8testnet } export default wrappedContracts From 74106d6057cecb792bd5aaf620b794f88eca381b Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Thu, 28 Sep 2023 13:40:38 -0400 Subject: [PATCH 11/67] Add ancient8 icons --- public/icons/ancient8-icon-dark.svg | 12 ++++++++++++ public/icons/ancient8-icon-light.svg | 12 ++++++++++++ utils/chains.ts | 4 ++-- 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 public/icons/ancient8-icon-dark.svg create mode 100644 public/icons/ancient8-icon-light.svg diff --git a/public/icons/ancient8-icon-dark.svg b/public/icons/ancient8-icon-dark.svg new file mode 100644 index 000000000..91a9157c2 --- /dev/null +++ b/public/icons/ancient8-icon-dark.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/icons/ancient8-icon-light.svg b/public/icons/ancient8-icon-light.svg new file mode 100644 index 000000000..b70506d0f --- /dev/null +++ b/public/icons/ancient8-icon-light.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/utils/chains.ts b/utils/chains.ts index e3a5edb83..ade39eb94 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -408,8 +408,8 @@ export default [ }, { ...ancient8Testnet, - lightIconUrl: '', - darkIconUrl: '', + lightIconUrl: '/icons/ancient8-icon-dark.svg', + darkIconUrl: '/icons/ancient8-icon-light.svg', reservoirBaseUrl: 'https://api-ancient8-testnet.reservoir.tools', proxyApi: '/api/reservoir/ancient8Testnet', routePrefix: 'ancient8Testnet', From 5255ea505661a2cf9b719acc5153092a4a7e3a82 Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Thu, 28 Sep 2023 14:59:05 -0400 Subject: [PATCH 12/67] Fix ancient8 icons --- public/icons/ancient8-icon-dark.svg | 10 +++++----- public/icons/ancient8-icon-light.svg | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/public/icons/ancient8-icon-dark.svg b/public/icons/ancient8-icon-dark.svg index 91a9157c2..b70506d0f 100644 --- a/public/icons/ancient8-icon-dark.svg +++ b/public/icons/ancient8-icon-dark.svg @@ -1,11 +1,11 @@ - - - - + + + + - + diff --git a/public/icons/ancient8-icon-light.svg b/public/icons/ancient8-icon-light.svg index b70506d0f..91a9157c2 100644 --- a/public/icons/ancient8-icon-light.svg +++ b/public/icons/ancient8-icon-light.svg @@ -1,11 +1,11 @@ - - - - + + + + - + From 0dbb8b05b27b91e6b4d9b35b563000cb32d9eca5 Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Wed, 1 Nov 2023 10:41:23 -0400 Subject: [PATCH 13/67] add ancient8 testnet --- utils/chains.ts | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/utils/chains.ts b/utils/chains.ts index 77bce8450..d3fb1e997 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -19,6 +19,33 @@ import { } from 'wagmi/chains' import usdcContracts from './usdcContracts' +export const ancient8Testnet = { + id: 2863311531, + name: 'Ancient8 Testnet', + network: 'ancient8', + nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, + rpcUrls: { + default: { + http: ['https://rpc-testnet.ancient8.gg'], + webSocket: ['https://rpc-testnet.ancient8.gg'], + }, + public: { + http: ['https://rpc-testnet.ancient8.gg'], + webSocket: ['https://rpc-testnet.ancient8.gg'], + }, + }, + blockExplorers: { + etherscan: { + name: 'a8scan', + url: 'https://testnet.a8scan.io/', + }, + default: { + name: 'a8scan', + url: 'https://testnet.a8scan.io/', + }, + }, +} as const satisfies Chain + //CONFIGURABLE: The default export controls the supported chains for the marketplace. Removing // or adding chains will result in adding more or less chains to the marketplace. // They are an extension of the wagmi chain objects @@ -269,4 +296,16 @@ export default [ collectionSetId: process.env.NEXT_PUBLIC_SCROLL_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_SCROLL_COMMUNITY, }, + { + ...ancient8Testnet, + lightIconUrl: '', + darkIconUrl: '', + reservoirBaseUrl: 'https://api-ancient8-testnet.reservoir.tools', + proxyApi: '/api/reservoir/ancient8Testnet', + routePrefix: 'ancient8Testnet', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'ethereum', + collectionSetId: process.env.NEXT_PUBLIC_ANCIENT8TESTNET_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_NCIENT8TESTNET_COMMUNITY, + }, ] as ReservoirChain[] From 58f6633b4c9e4aa1247fb8432e6f9886b5fabb68 Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Wed, 1 Nov 2023 11:02:47 -0400 Subject: [PATCH 14/67] fix icons --- utils/chains.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/chains.ts b/utils/chains.ts index d3fb1e997..04aa2d2e3 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -298,8 +298,8 @@ export default [ }, { ...ancient8Testnet, - lightIconUrl: '', - darkIconUrl: '', + lightIconUrl: '/icons/ancient8-icon-dark.svg', + darkIconUrl: '/icons/ancient8-icon-light.svg', reservoirBaseUrl: 'https://api-ancient8-testnet.reservoir.tools', proxyApi: '/api/reservoir/ancient8Testnet', routePrefix: 'ancient8Testnet', From a9c71ca3dc4b22d8b7013c877476144bf7d2cacb Mon Sep 17 00:00:00 2001 From: Ted Palmer Date: Fri, 15 Dec 2023 13:54:05 -0500 Subject: [PATCH 15/67] chore: reset cache when search term changes --- pages/[chain]/collection/[contract].tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/[chain]/collection/[contract].tsx b/pages/[chain]/collection/[contract].tsx index a2f06d111..abceb01a1 100644 --- a/pages/[chain]/collection/[contract].tsx +++ b/pages/[chain]/collection/[contract].tsx @@ -674,6 +674,7 @@ const CollectionPage: NextPage = ({ id, ssr }) => { css={{ pl: 42 }} placeholder="Search by token name" onChange={(e) => { + resetCache() setTokenSearchQuery(e.target.value) }} value={tokenSearchQuery} From cb3c9aa7199f61fff2ff60206afcc913e9543ed6 Mon Sep 17 00:00:00 2001 From: armando Date: Mon, 18 Dec 2023 14:03:11 -0800 Subject: [PATCH 16/67] feat: log out host url --- hooks/useIsUnsupportedChain.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hooks/useIsUnsupportedChain.ts b/hooks/useIsUnsupportedChain.ts index 5147cf135..213a28528 100644 --- a/hooks/useIsUnsupportedChain.ts +++ b/hooks/useIsUnsupportedChain.ts @@ -46,6 +46,12 @@ export default () => { const { chain } = useNetwork() useEffect(() => { + console.log(process.env.NEXT_PUBLIC_HOST_URL) + console.log( + !MAINNET_DEPLOYMENT_URLS.includes( + process.env.NEXT_PUBLIC_HOST_URL as string + ) + ) setUnsupportedChain( (IS_TESTNET_DEPLOYMENT ? TESTNET_CHAINS : MAINNET_CHAINS).find( ({ id }) => chain?.id === id From a030154c8cc044d11114d9131e6531680bfddf49 Mon Sep 17 00:00:00 2001 From: armando Date: Mon, 18 Dec 2023 14:35:30 -0800 Subject: [PATCH 17/67] Update useIsUnsupportedChain.ts --- hooks/useIsUnsupportedChain.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/hooks/useIsUnsupportedChain.ts b/hooks/useIsUnsupportedChain.ts index 0c6bab8f8..5f81837dc 100644 --- a/hooks/useIsUnsupportedChain.ts +++ b/hooks/useIsUnsupportedChain.ts @@ -46,12 +46,6 @@ export default () => { const { chain } = useNetwork() useEffect(() => { - console.log(process.env.NEXT_PUBLIC_HOST_URL) - console.log( - !MAINNET_DEPLOYMENT_URLS.includes( - process.env.NEXT_PUBLIC_HOST_URL as string - ) - ) setUnsupportedChain( (IS_TESTNET_DEPLOYMENT ? MAINNET_CHAINS : TESTNET_CHAINS).find( ({ id }) => chain?.id === id From ee0e3b6085339ca98c22c3463a50c42e520874b1 Mon Sep 17 00:00:00 2001 From: Jaden Date: Thu, 28 Dec 2023 17:20:15 -0500 Subject: [PATCH 18/67] feat: switching to proxy --- components/collections/CollectionActions.tsx | 2 +- components/collections/TokenCard.tsx | 4 +- components/portfolio/PortfolioTokenCard.tsx | 4 +- components/portfolio/TokenTable.tsx | 4 +- pages/[chain]/asset/[assetId].tsx | 23 +-- pages/_app.tsx | 5 +- pages/api/reservoir/[...slug].ts | 148 ------------------- 7 files changed, 22 insertions(+), 168 deletions(-) delete mode 100644 pages/api/reservoir/[...slug].ts diff --git a/components/collections/CollectionActions.tsx b/components/collections/CollectionActions.tsx index 9688d0421..dd455067c 100644 --- a/components/collections/CollectionActions.tsx +++ b/components/collections/CollectionActions.tsx @@ -110,7 +110,7 @@ const CollectionActions: FC = ({ collection }) => { } setIsRefreshing(true) fetcher( - `${window.location.origin}/${marketplaceChain.proxyApi}/collections/refresh/v2`, + `${process.env.NEXT_PUBLIC_PROXY_URL}${marketplaceChain.proxyApi}/collections/refresh/v2`, undefined, { method: 'POST', diff --git a/components/collections/TokenCard.tsx b/components/collections/TokenCard.tsx index 9ccd5aafd..a7d9dcc4d 100644 --- a/components/collections/TokenCard.tsx +++ b/components/collections/TokenCard.tsx @@ -293,10 +293,10 @@ export default ({ onClick={(e) => { e.preventDefault() e.stopPropagation() - const url = `${proxyApi}/redirect/sources/${token?.market?.floorAsk?.source?.domain}/tokens/${token?.token?.contract}:${token?.token?.tokenId}/link/v2` + const url = `${process.env.NEXT_PUBLIC_PROXY_URL}${proxyApi}/redirect/sources/${token?.market?.floorAsk?.source?.domain}/tokens/${token?.token?.contract}:${token?.token?.tokenId}/link/v2` window.open(url, '_blank') }} - src={`${proxyApi}/redirect/sources/${token?.market?.floorAsk?.source?.domain}/logo/v2`} + src={`${process.env.NEXT_PUBLIC_PROXY_URL}${proxyApi}/redirect/sources/${token?.market?.floorAsk?.source?.domain}/logo/v2`} /> ) : null} diff --git a/components/portfolio/PortfolioTokenCard.tsx b/components/portfolio/PortfolioTokenCard.tsx index 2e4354420..aedecb447 100644 --- a/components/portfolio/PortfolioTokenCard.tsx +++ b/components/portfolio/PortfolioTokenCard.tsx @@ -339,7 +339,7 @@ export default ({ height: 20, borderRadius: '50%', }} - src={`${proxyApi}/redirect/sources/${token?.ownership?.floorAsk?.source?.domain}/logo/v2`} + src={`${process.env.NEXT_PUBLIC_PROXY_URL}${proxyApi}/redirect/sources/${token?.ownership?.floorAsk?.source?.domain}/logo/v2`} /> )} @@ -470,7 +470,7 @@ export default ({ } setIsRefreshing(true) fetcher( - `${window.location.origin}/${proxyApi}/tokens/refresh/v1`, + `${process.env.NEXT_PUBLIC_PROXY_URL}${proxyApi}/tokens/refresh/v1`, undefined, { method: 'POST', diff --git a/components/portfolio/TokenTable.tsx b/components/portfolio/TokenTable.tsx index 06a380693..21b9a8642 100644 --- a/components/portfolio/TokenTable.tsx +++ b/components/portfolio/TokenTable.tsx @@ -499,7 +499,7 @@ const TokenTableRow: FC = ({ } setIsRefreshing(true) fetcher( - `${window.location.origin}/${proxyApi}/tokens/refresh/v1`, + `${process.env.NEXT_PUBLIC_PROXY_URL}${proxyApi}/tokens/refresh/v1`, undefined, { method: 'POST', @@ -926,7 +926,7 @@ const TokenTableRow: FC = ({ } setIsRefreshing(true) fetcher( - `${window.location.origin}/${proxyApi}/tokens/refresh/v1`, + `${process.env.NEXT_PUBLIC_PROXY_URL}${proxyApi}/tokens/refresh/v1`, undefined, { method: 'POST', diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 0ebc901e4..7ba4fa02f 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -387,7 +387,7 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { } setIsRefreshing(true) fetcher( - `${window.location.origin}/${proxyApi}/tokens/refresh/v1`, + `${process.env.NEXT_PUBLIC_PROXY_URL}${proxyApi}/tokens/refresh/v1`, undefined, { method: 'POST', @@ -416,8 +416,8 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { title: 'Refresh token failed', description: ratelimit ? `This token was recently refreshed. The next available refresh is ${timeTill( - ratelimit - )}.` + ratelimit + )}.` : `This token was recently refreshed. Please try again later.`, }) @@ -453,7 +453,10 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { You own {countOwned} - + = ({ assetId, ssr }) => { type SSRProps = { collection?: - | paths['/collections/v7']['get']['responses']['200']['schema'] - | null + | paths['/collections/v7']['get']['responses']['200']['schema'] + | null tokens?: paths['/tokens/v6']['get']['responses']['200']['schema'] | null } @@ -648,10 +651,10 @@ export const getServerSideProps: GetServerSideProps<{ : {} let collectionQuery: paths['/collections/v7']['get']['parameters']['query'] = - { - id: tokens?.tokens?.[0]?.token?.collection?.id, - normalizeRoyalties: NORMALIZE_ROYALTIES, - } + { + id: tokens?.tokens?.[0]?.token?.collection?.id, + normalizeRoyalties: NORMALIZE_ROYALTIES, + } const collectionsPromise = fetcher( `${reservoirBaseUrl}/collections/v7`, diff --git a/pages/_app.tsx b/pages/_app.tsx index 0b260c6b0..4cae4d6c4 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -224,9 +224,8 @@ AppWrapper.getInitialProps = async (appContext: AppContext) => { const appProps = await NextApp.getInitialProps(appContext) let baseUrl = '' - if (appContext.ctx.req?.headers.host) { - const host = appContext.ctx.req?.headers.host - baseUrl = `${host.includes('localhost') ? 'http' : 'https'}://${host}` + if (process.env.NEXT_PUBLIC_PROXY_URL) { + baseUrl = process.env.NEXT_PUBLIC_PROXY_URL } else if (process.env.NEXT_PUBLIC_HOST_URL) { baseUrl = process.env.NEXT_PUBLIC_HOST_URL || '' } diff --git a/pages/api/reservoir/[...slug].ts b/pages/api/reservoir/[...slug].ts deleted file mode 100644 index 73d660600..000000000 --- a/pages/api/reservoir/[...slug].ts +++ /dev/null @@ -1,148 +0,0 @@ -import { setParams } from '@reservoir0x/reservoir-sdk' -import type { NextApiRequest, NextApiResponse } from 'next' -import supportedChains, { DefaultChain } from 'utils/chains' -import { arbitrum, goerli, mainnet, optimism, zora } from 'wagmi/chains' -import wrappedContracts from 'utils/wrappedContracts' -import { zeroAddress } from 'viem' - -// A proxy API endpoint to redirect all requests to `/api/reservoir/*` to -// MAINNET: https://api.reservoir.tools/{endpoint}/{query-string} -// and attach the `x-api-key` header to the request. This way the -// Reservoir API key is not exposed to the client. - -const allowedDomains = process.env.ALLOWED_API_DOMAINS - ? process.env.ALLOWED_API_DOMAINS.split(',') - : null - -// https://nextjs.org/docs/api-routes/dynamic-api-routes#catch-all-api-routes -const proxy = async (req: NextApiRequest, res: NextApiResponse) => { - const { query, body, method, headers: reqHeaders } = req - if (allowedDomains && allowedDomains.length > 0) { - let origin = req.headers.origin || req.headers.referer || '' - try { - origin = new URL(origin).origin - } catch (e) {} - if (!origin.length || !allowedDomains.includes(origin)) { - res.status(403).json({ error: 'Access forbidden' }) - return - } - } - - const { slug } = query - // Isolate the query object - delete query.slug - - let endpoint: string = '' - - // convert the slug array into a path string: [a, b] -> 'a/b' - if (typeof slug === 'string') { - endpoint = slug - } else { - endpoint = (slug || ['']).join('/') - } - - const chainPrefix = endpoint.split('/')[0] - const chain = - supportedChains.find((chain) => chain.routePrefix === chainPrefix) || - DefaultChain - - const url = new URL(endpoint.replace(chainPrefix, ''), chain.reservoirBaseUrl) - setParams(url, query) - - if (endpoint.includes('redirect/')) { - // Redirect eth and weth currency icons to self-hosted - // versions without any padding - endpoint = endpoint.toLowerCase() - if ( - [ - mainnet.id as number, - goerli.id, - zora.id, - optimism.id, - arbitrum.id, - ].includes(chain.id) && - endpoint.includes('currency') - ) { - if (endpoint.includes(zeroAddress)) { - res.redirect('/icons/currency/no-padding-eth.png') - return - } else if ( - endpoint.includes(wrappedContracts['1'].toLowerCase()) || - endpoint.includes(wrappedContracts['5'].toLowerCase()) - ) { - res.redirect('/icons/currency/no-padding-weth.png') - return - } - } - res.redirect(url.href) - return - } else if (endpoint.match(/\/users\/(\w+)\/tokens\/v7/g)) { - if (url.searchParams.get('limit') === '198') { - res.status(403).json({ error: 'Access forbidden' }) - } - } - - try { - const options: RequestInit | undefined = { - method, - } - - const headers = new Headers({ - Referrer: reqHeaders['referer'] || reqHeaders['origin'] || '', - Origin: 'https://explorer-proxy.reservoir.tools', - }) - - if (process.env.RESERVOIR_API_KEY) - headers.set('x-api-key', process.env.RESERVOIR_API_KEY) - - if (typeof body === 'object') { - headers.set('Content-Type', 'application/json') - options.body = JSON.stringify(body) - } - - if ( - reqHeaders['x-rkc-version'] && - typeof reqHeaders['x-rkc-version'] === 'string' - ) { - headers.set('x-rkc-version', reqHeaders['x-rkc-version']) - } - - if ( - reqHeaders['x-rkui-version'] && - typeof reqHeaders['x-rkui-version'] === 'string' - ) { - headers.set('x-rkui-version', reqHeaders['x-rkui-version']) - } - - options.headers = headers - - const response = await fetch(url.href, options) - let data: any - - const contentType = response.headers.get('content-type') - - const cacheControl = response.headers.get('cache-control') - if (cacheControl) { - headers.set('cache-control', cacheControl) - } - - if (contentType?.includes('application/json')) { - data = await response.json() - } else { - data = await response.text() - } - - if (!response.ok) throw data - - if (contentType?.includes('image/')) { - res.setHeader('Content-Type', 'text/html') - res.status(200).send(Buffer.from(data)) - } else { - res.status(200).json(data) - } - } catch (error) { - res.status(400).json(error) - } -} - -export default proxy From 6516b8a4e62601da2d8a3276b68123174f4aacc7 Mon Sep 17 00:00:00 2001 From: Jaden Date: Thu, 25 Jan 2024 19:15:09 -0500 Subject: [PATCH 19/67] feat: adding origin to globalSearch headers --- pages/api/globalSearch.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pages/api/globalSearch.ts b/pages/api/globalSearch.ts index 62b62162c..fbce2dd28 100644 --- a/pages/api/globalSearch.ts +++ b/pages/api/globalSearch.ts @@ -71,6 +71,7 @@ async function searchSingleChain(chain: ReservoirChain, query: string) { const headers = { headers: { 'x-api-key': process.env.RESERVOIR_API_KEY || '', + origin: HOST_URL || '', }, } @@ -211,6 +212,7 @@ async function searchAllChains(query: string) { const headers = { headers: { 'x-api-key': process.env.RESERVOIR_API_KEY || '', + origin: HOST_URL || '', }, } @@ -238,6 +240,7 @@ async function searchAllChains(query: string) { const headers = { headers: { 'x-api-key': process.env.RESERVOIR_API_KEY || '', + origin: HOST_URL || '', }, } const { data } = await fetcher( From 66b8cd7c085a8250f49660ec62ed47133e439047 Mon Sep 17 00:00:00 2001 From: armando Date: Tue, 6 Feb 2024 14:21:06 -0800 Subject: [PATCH 20/67] feat: promise.all fonts --- pages/api/og/token/index.tsx | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/pages/api/og/token/index.tsx b/pages/api/og/token/index.tsx index 5cef21c7b..3cda41af0 100644 --- a/pages/api/og/token/index.tsx +++ b/pages/api/og/token/index.tsx @@ -6,18 +6,20 @@ export const config = { runtime: 'edge', } +const loadFont = (font: string): Promise => + fetch(new URL(`../../../../public/fonts/${font}`, import.meta.url)).then( + (res) => res.arrayBuffer() + ) + export default async function handler(request: NextRequest) { const { searchParams } = request.nextUrl const base64EncodedToken = searchParams.get('token') - const fontData = await fetch( - new URL('../../../../public/fonts/Inter-Black.ttf', import.meta.url) - ).then((res) => res.arrayBuffer()) - - const fontReguluar = await fetch( - new URL('../../../../public/fonts/Inter-Regular.ttf', import.meta.url) - ).then((res) => res.arrayBuffer()) + const [blackFont, regularFont] = await Promise.all([ + loadFont('Inter-Black.ttf'), + loadFont('Inter-Regular.ttf'), + ]) if (!base64EncodedToken) { return new ImageResponse( @@ -159,13 +161,13 @@ export default async function handler(request: NextRequest) { height: 630, fonts: [ { - name: 'Inter', - data: fontData, + name: 'Black', + data: blackFont, style: 'normal', }, { - name: 'Normal', - data: fontReguluar, + name: 'Regular', + data: regularFont, style: 'normal', }, ], From 40bb812057b57cb60f23cfbd8c71791d4cb505bc Mon Sep 17 00:00:00 2001 From: armando Date: Tue, 6 Feb 2024 14:30:37 -0800 Subject: [PATCH 21/67] feat: GH as a CDN --- pages/api/og/token/index.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pages/api/og/token/index.tsx b/pages/api/og/token/index.tsx index 6e490358e..9f33bfcc1 100644 --- a/pages/api/og/token/index.tsx +++ b/pages/api/og/token/index.tsx @@ -13,10 +13,16 @@ export default async function handler(request: NextRequest) { const [blackFont, regularFont] = await Promise.all([ fetch( - new URL(`../../../../public/fonts/Inter-Black.ttf`, import.meta.url) + new URL( + `https://github.com/reservoirprotocol/marketplace-v2/raw/dev/public/fonts/Inter-Black.ttf`, + import.meta.url + ) ).then((res) => res.arrayBuffer()), fetch( - new URL(`../../../../public/fonts/Inter-Regular.ttf`, import.meta.url) + new URL( + `https://github.com/reservoirprotocol/marketplace-v2/raw/dev/public/fonts/Inter-Regular.ttf`, + import.meta.url + ) ).then((res) => res.arrayBuffer()), ]) From 8aa5caa3573f8e20f7c2fa8e2022e5f65c02a5d3 Mon Sep 17 00:00:00 2001 From: armando Date: Tue, 6 Feb 2024 14:53:59 -0800 Subject: [PATCH 22/67] feat: fix fonts --- pages/api/og/token/index.tsx | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/pages/api/og/token/index.tsx b/pages/api/og/token/index.tsx index d11c77f2d..ca87da754 100644 --- a/pages/api/og/token/index.tsx +++ b/pages/api/og/token/index.tsx @@ -13,16 +13,10 @@ export default async function handler(request: NextRequest) { const [blackFont, regularFont] = await Promise.all([ fetch( - new URL( - `https://github.com/reservoirprotocol/marketplace-v2/raw/dev/public/fonts/Inter-Black.ttf`, - import.meta.url - ) + `https://github.com/reservoirprotocol/marketplace-v2/raw/dev/public/fonts/Inter-Black.ttf` ).then((res) => res.arrayBuffer()), fetch( - new URL( - `https://github.com/reservoirprotocol/marketplace-v2/raw/dev/public/fonts/Inter-Regular.ttf`, - import.meta.url - ) + `https://github.com/reservoirprotocol/marketplace-v2/raw/dev/public/fonts/Inter-Regular.ttf` ).then((res) => res.arrayBuffer()), ]) From dfa4ecb9a3a86223cc120f602dd8d925e21df17a Mon Sep 17 00:00:00 2001 From: armando Date: Tue, 6 Feb 2024 15:11:22 -0800 Subject: [PATCH 23/67] feat: reupload fonts --- public/fonts/Inter-Black.ttf | Bin 0 -> 316848 bytes public/fonts/Inter-Regular.ttf | Bin 0 -> 310252 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/fonts/Inter-Black.ttf create mode 100644 public/fonts/Inter-Regular.ttf diff --git a/public/fonts/Inter-Black.ttf b/public/fonts/Inter-Black.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b27822baea48062bf11617ce763e8d623c3a9769 GIT binary patch literal 316848 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

Jv+`0!b7}B5n-gutriq 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

Z!)9Bt3Egf{~Xji0sPQ(fD|Oc}7GcFAqDbZW_d9 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 IAz7pOKk|+GjsO4v literal 0 HcmV?d00001 diff --git a/public/fonts/Inter-Regular.ttf b/public/fonts/Inter-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5e4851f0ab7e0268da6ce903306e2f871ee19821 GIT binary patch literal 310252 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 z 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%0D1lG~DE2ff7BeoTnFxKM!4172W=IjHdV9zf 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 Date: Wed, 7 Feb 2024 10:42:25 -0800 Subject: [PATCH 24/67] feat: metatas --- components/Head.tsx | 1 + pages/[chain]/asset/[assetId].tsx | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/components/Head.tsx b/components/Head.tsx index 5c57b21cf..05772612f 100644 --- a/components/Head.tsx +++ b/components/Head.tsx @@ -5,6 +5,7 @@ type Props = { ogImage?: string title?: string description?: string + metatags?: React.ReactNode } /** diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 9440fdf4b..6328ed757 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -236,12 +236,24 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { )}`} title={pageTitle} description={collection?.description as string} - /> - + + + + + + + } /> Date: Wed, 7 Feb 2024 10:55:17 -0800 Subject: [PATCH 25/67] feat: actually pass tags --- components/Head.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/Head.tsx b/components/Head.tsx index 05772612f..43f09bc9d 100644 --- a/components/Head.tsx +++ b/components/Head.tsx @@ -18,6 +18,7 @@ export const Head: FC = ({ ogImage = 'https://explorer.reservoir.tools/og-image.png', title = 'Reservoir | Multi-Chain NFT Explorer', description = 'Reservoir Multi-Chain NFT Explorer is an open source NFT explorer built with Reservoir.', + metatags = null, }) => { return ( @@ -48,6 +49,9 @@ export const Head: FC = ({ + + {/* Extra Metatas */} + {metatags && metatags} ) } From 29cfb5a5b4313f11ed2cac5e934725cbb0abae35 Mon Sep 17 00:00:00 2001 From: armando Date: Wed, 7 Feb 2024 16:28:39 -0800 Subject: [PATCH 26/67] feat: actually use data --- components/frames/index.tsx | 33 +++++++++++++++++++++++++++++++ pages/[chain]/asset/[assetId].tsx | 18 ++++++++++------- 2 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 components/frames/index.tsx diff --git a/components/frames/index.tsx b/components/frames/index.tsx new file mode 100644 index 000000000..76de0bec0 --- /dev/null +++ b/components/frames/index.tsx @@ -0,0 +1,33 @@ +import { Token } from '@reservoir0x/reservoir-kit-ui' +import { useMarketplaceChain } from 'hooks' + +interface Props { + token: Token +} + +const Frame: React.FC = ({ token }) => { + const marketplaceChain = useMarketplaceChain() + + return ( + <> + {/* Warpcast NFT Old Spec */} + + + + + + + ) +} diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 6328ed757..070250d7e 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -231,26 +231,30 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { return ( - + - + } From fff2940a6298ebb5472ef9ee8cb1ae39a2c3283d Mon Sep 17 00:00:00 2001 From: armando Date: Wed, 7 Feb 2024 16:36:51 -0800 Subject: [PATCH 27/67] feat: use correct creator --- pages/[chain]/asset/[assetId].tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 070250d7e..158d8c7d2 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -246,7 +246,7 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { /> Date: Wed, 7 Feb 2024 16:50:22 -0800 Subject: [PATCH 28/67] feat: use next spec --- pages/[chain]/asset/[assetId].tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 158d8c7d2..681ea9675 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -256,6 +256,23 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { property="eth:nft:media_url" content={token?.token?.imageSmall} /> + + + + + + + + } /> From 84dafce7ad28e4bc2b2d92ac89a691d9efab1cef Mon Sep 17 00:00:00 2001 From: armando Date: Wed, 7 Feb 2024 17:05:07 -0800 Subject: [PATCH 29/67] feat: use example frames --- pages/[chain]/asset/[assetId].tsx | 34 ++++++++++++++----------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 681ea9675..a0214c42e 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -231,47 +231,43 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { return ( - + - + - + + - } From 802e5b10b932161151d7c659b7a2f2bd0d23247c Mon Sep 17 00:00:00 2001 From: armando Date: Wed, 7 Feb 2024 17:06:02 -0800 Subject: [PATCH 30/67] feat: use actual images --- pages/[chain]/asset/[assetId].tsx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index a0214c42e..f183e2e03 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -250,18 +250,15 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { - + From 406936009486b395588adddf8c999958208b38c6 Mon Sep 17 00:00:00 2001 From: armando Date: Wed, 7 Feb 2024 17:17:36 -0800 Subject: [PATCH 31/67] feat: use lowercase values --- components/Head.tsx | 2 +- pages/[chain]/asset/[assetId].tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/Head.tsx b/components/Head.tsx index 43f09bc9d..ea88d1018 100644 --- a/components/Head.tsx +++ b/components/Head.tsx @@ -16,7 +16,7 @@ type Props = { */ export const Head: FC = ({ ogImage = 'https://explorer.reservoir.tools/og-image.png', - title = 'Reservoir | Multi-Chain NFT Explorer', + title = 'Reservoir | Multi-Chain NF`T Explorer', description = 'Reservoir Multi-Chain NFT Explorer is an open source NFT explorer built with Reservoir.', metatags = null, }) => { diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index f183e2e03..e5015d983 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -247,7 +247,7 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { property="eth:nft:creator_address" content="0xbc698ce1933afb2980d4a5a0f85fea1b02fbb1c9" /> - + Date: Wed, 7 Feb 2024 17:17:50 -0800 Subject: [PATCH 32/67] feat: values --- pages/[chain]/asset/[assetId].tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index e5015d983..8a2f7c090 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -264,7 +264,7 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { } From 769794ea550eaa4c76500ce9138e6ea4e15ff4f1 Mon Sep 17 00:00:00 2001 From: armando Date: Wed, 7 Feb 2024 17:29:54 -0800 Subject: [PATCH 33/67] feat: duplicate tags --- pages/[chain]/asset/[assetId].tsx | 38 +++++++++++++++++++------------ 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 8a2f7c090..3c252ec3b 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -238,33 +238,41 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { description={collection?.description as string} metatags={ <> - + + + + + + + - - - + + + + - - } From f8895fe13446d2565ed82ed5dc1a34e3b6a3e767 Mon Sep 17 00:00:00 2001 From: armando Date: Wed, 7 Feb 2024 17:37:36 -0800 Subject: [PATCH 34/67] feat: force tag spot --- components/Head.tsx | 50 +++++++++++++++++++++---------- pages/[chain]/asset/[assetId].tsx | 41 +------------------------ 2 files changed, 36 insertions(+), 55 deletions(-) diff --git a/components/Head.tsx b/components/Head.tsx index ea88d1018..9c28c8fba 100644 --- a/components/Head.tsx +++ b/components/Head.tsx @@ -1,11 +1,12 @@ import { FC } from 'react' import NextHead from 'next/head' +import { Token } from '@reservoir0x/reservoir-kit-ui' type Props = { ogImage?: string title?: string description?: string - metatags?: React.ReactNode + token?: Token } /** @@ -18,7 +19,7 @@ export const Head: FC = ({ ogImage = 'https://explorer.reservoir.tools/og-image.png', title = 'Reservoir | Multi-Chain NF`T Explorer', description = 'Reservoir Multi-Chain NFT Explorer is an open source NFT explorer built with Reservoir.', - metatags = null, + token, }) => { return ( @@ -38,20 +39,39 @@ export const Head: FC = ({ - {/* Open Graph */} - - - - - - - - - - - {/* Extra Metatas */} - {metatags && metatags} + <> + + + + + + + + + + + + + + + + + + + ) } diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 3c252ec3b..5fb69f563 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -234,48 +234,9 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { ogImage={`/api/og/token?token=${encodeURIComponent( base64EncodedToken )}`} + token={token} title={pageTitle} description={collection?.description as string} - metatags={ - <> - - - - - - - - - - - - - - - - - - - - } /> Date: Wed, 7 Feb 2024 17:40:24 -0800 Subject: [PATCH 35/67] feat: rebuild From 6f80e81f6d652622a6761669dfb92654c123ba03 Mon Sep 17 00:00:00 2001 From: armando Date: Wed, 7 Feb 2024 17:40:48 -0800 Subject: [PATCH 36/67] feat: rebuild --- components/Head.tsx | 7 ------- 1 file changed, 7 deletions(-) diff --git a/components/Head.tsx b/components/Head.tsx index 9c28c8fba..3bb30182b 100644 --- a/components/Head.tsx +++ b/components/Head.tsx @@ -32,13 +32,6 @@ export const Head: FC = ({ {/* Meta tags */} - {/* Twitter */} - - - - - - {/* Extra Metatas */} <> From b400184b8ad0fda8cd72863e2f12b3f39981eaee Mon Sep 17 00:00:00 2001 From: armando Date: Wed, 7 Feb 2024 18:19:53 -0800 Subject: [PATCH 37/67] feat: remove uneeded tags --- components/Head.tsx | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/components/Head.tsx b/components/Head.tsx index 3bb30182b..888de86dd 100644 --- a/components/Head.tsx +++ b/components/Head.tsx @@ -34,14 +34,6 @@ export const Head: FC = ({ {/* Extra Metatas */} <> - - - - - @@ -54,16 +46,7 @@ export const Head: FC = ({ content="0x2e92b5094c531257a9f427def7c05b412b9056bb" /> - - - - - - - + ) From d2854c378f0e27e90f49d47ec3fd42541bf48cc8 Mon Sep 17 00:00:00 2001 From: armando Date: Thu, 8 Feb 2024 14:40:17 -0800 Subject: [PATCH 38/67] feat: bui8ld issues --- pages/[chain]/asset/[assetId].tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index d8d4c60b1..002a94563 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -234,7 +234,6 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { ogImage={`/api/og/token?token=${encodeURIComponent( base64EncodedToken )}`} - token={token} title={pageTitle} description={collection?.description as string} metatags={ From 58cb3bac510f8ca8488ef75f4f338a9cfe937d21 Mon Sep 17 00:00:00 2001 From: armando Date: Thu, 8 Feb 2024 15:45:24 -0800 Subject: [PATCH 39/67] Update [assetId].tsx --- pages/[chain]/asset/[assetId].tsx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index a16580456..909e862b1 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -226,14 +226,10 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { ? token.token.name : `${token?.token?.tokenId} - ${token?.token?.collection?.name}` - const base64EncodedToken = btoa(JSON.stringify(token)) - return ( Date: Mon, 12 Feb 2024 11:53:59 -0800 Subject: [PATCH 40/67] feat: use explorer as proxy --- pages/[chain]/asset/[assetId].tsx | 16 +++++++++++++--- pages/api/og/redirect/index.tsx | 28 ++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 pages/api/og/redirect/index.tsx diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 909e862b1..1f137d4b6 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -226,6 +226,10 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { ? token.token.name : `${token?.token?.tokenId} - ${token?.token?.collection?.name}` + const base64EncodedImage = btoa( + token?.token?.image || token?.token?.collection?.image || '' + ) + return ( = ({ assetId, ssr }) => { property="og:title" content={`Farcaster: ${token?.token?.name}`} /> - + = ({ assetId, ssr }) => { property="eth:nft:schema" content={token?.token?.kind?.toUpperCase()} /> - + diff --git a/pages/api/og/redirect/index.tsx b/pages/api/og/redirect/index.tsx new file mode 100644 index 000000000..2fd214dab --- /dev/null +++ b/pages/api/og/redirect/index.tsx @@ -0,0 +1,28 @@ +import { ImageResponse } from '@vercel/og' +import { NextRequest } from 'next/server' + +export const config = { + runtime: 'edge', +} + +export default async function handler(request: NextRequest) { + const { searchParams } = request.nextUrl + const base64EncodedImage = searchParams.get('image') + + if (!base64EncodedImage) { + return new ImageResponse( + , + { + width: 1200, + height: 630, + } + ) + } + + const imageSrc = JSON.parse(atob(base64EncodedImage)) as string + + return new ImageResponse(, { + width: 1200, + height: 630, + }) +} From d964576065465b0618dc3666694100c7765fa2f2 Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Tue, 13 Feb 2024 09:58:37 -0500 Subject: [PATCH 41/67] Fix ancient8 testnet --- utils/chains.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/chains.ts b/utils/chains.ts index 37d7dedf4..16680bac8 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -339,7 +339,7 @@ export default [ lightIconUrl: '/icons/ancient8-icon-dark.svg', darkIconUrl: '/icons/ancient8-icon-light.svg', reservoirBaseUrl: 'https://api-ancient8-testnet.reservoir.tools', - proxyApi: '/api/reservoir/ancient8Testnet', + proxyApi: '/api/reservoir/ancient8-testnet', routePrefix: 'ancient8Testnet', apiKey: process.env.RESERVOIR_API_KEY, coingeckoId: 'ethereum', From 9d2ff5884f23c25a3ef243906679808bb784a85a Mon Sep 17 00:00:00 2001 From: armando Date: Tue, 13 Feb 2024 08:55:55 -0800 Subject: [PATCH 42/67] Merge branch 'feat/warpcast-patch' into dev From 5de53eda6ab55771cefe979b14ddd4dc57aedd6f Mon Sep 17 00:00:00 2001 From: armando Date: Tue, 13 Feb 2024 10:57:17 -0800 Subject: [PATCH 43/67] Update [assetId].tsx --- pages/[chain]/asset/[assetId].tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 1f137d4b6..d849794a8 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -233,7 +233,7 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { return ( Date: Tue, 13 Feb 2024 11:03:39 -0800 Subject: [PATCH 44/67] Update [assetId].tsx --- pages/[chain]/asset/[assetId].tsx | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index d849794a8..a08d9bc43 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -226,14 +226,14 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { ? token.token.name : `${token?.token?.tokenId} - ${token?.token?.collection?.name}` - const base64EncodedImage = btoa( - token?.token?.image || token?.token?.collection?.image || '' - ) + const base64EncodedToken = btoa(JSON.stringify(token)) return ( = ({ assetId, ssr }) => { property="og:title" content={`Farcaster: ${token?.token?.name}`} /> - = ({ assetId, ssr }) => { property="eth:nft:schema" content={token?.token?.kind?.toUpperCase()} /> - - - - Date: Tue, 13 Feb 2024 11:45:40 -0800 Subject: [PATCH 45/67] Merge branch 'armando/grwth-4027-update-explorer-collectionasset-og-image-to-serve-a-similiar' into dev From 64edfc722d391e4f231aceb24904099e6a3c18db Mon Sep 17 00:00:00 2001 From: Ted Palmer Date: Thu, 22 Feb 2024 10:47:30 -0500 Subject: [PATCH 46/67] Fix build error --- utils/chains.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/utils/chains.ts b/utils/chains.ts index f0dff8446..515f5bd38 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -23,7 +23,6 @@ import usdcContracts from './usdcContracts' export const ancient8Testnet = { id: 2863311531, name: 'Ancient8 Testnet', - network: 'ancient8', nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, rpcUrls: { default: { From b7a374a03c427e50ba4b592d8b2aa32ad9001c39 Mon Sep 17 00:00:00 2001 From: armando Date: Fri, 23 Feb 2024 11:18:03 -0800 Subject: [PATCH 47/67] feat: remove old tags --- pages/[chain]/asset/[assetId].tsx | 19 +------------------ pages/[chain]/collection/[contract].tsx | 24 +----------------------- 2 files changed, 2 insertions(+), 41 deletions(-) diff --git a/pages/[chain]/asset/[assetId].tsx b/pages/[chain]/asset/[assetId].tsx index 25370c087..b89ba6823 100644 --- a/pages/[chain]/asset/[assetId].tsx +++ b/pages/[chain]/asset/[assetId].tsx @@ -242,23 +242,6 @@ const IndexPage: NextPage = ({ assetId, ssr }) => { property="og:title" content={`Farcaster: ${token?.token?.name}`} /> - - - - - = ({ assetId, ssr }) => { )} diff --git a/pages/[chain]/collection/[contract].tsx b/pages/[chain]/collection/[contract].tsx index fa3d3c988..d5aedc191 100644 --- a/pages/[chain]/collection/[contract].tsx +++ b/pages/[chain]/collection/[contract].tsx @@ -362,28 +362,6 @@ const CollectionPage: NextPage = ({ id, ssr }) => { description={ssr?.collection?.collections?.[0]?.description as string} metatags={ <> - - - - - - - = ({ id, ssr }) => { )} From 26157ebcb67ea22b3305a1ab1313cfaa846aa7e4 Mon Sep 17 00:00:00 2001 From: Ted Palmer Date: Thu, 11 Apr 2024 09:54:25 -0400 Subject: [PATCH 48/67] feat: add redstone mainnet --- package.json | 2 +- public/icons/redstone-icon-dark.svg | 35 +++++++++++++++++++++++++++ public/icons/redstone-icon-light.svg | 36 ++++++++++++++++++++++++++++ utils/chains.ts | 15 ++++++++++++ utils/wrappedContracts.ts | 1 + yarn.lock | 18 +++++++------- 6 files changed, 97 insertions(+), 10 deletions(-) create mode 100644 public/icons/redstone-icon-dark.svg create mode 100644 public/icons/redstone-icon-light.svg diff --git a/package.json b/package.json index c24367cc1..59f44712f 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@radix-ui/react-toggle-group": "^1.0.1", "@radix-ui/react-tooltip": "1.0.6", "@rainbow-me/rainbowkit": "2.0.0", - "@reservoir0x/reservoir-kit-ui": "2.4.0", + "@reservoir0x/reservoir-kit-ui": "2.4.6", "@sentry/nextjs": "^7.85.0", "@tanstack/react-query": "5.20.2", "@types/uuid": "^9.0.1", diff --git a/public/icons/redstone-icon-dark.svg b/public/icons/redstone-icon-dark.svg new file mode 100644 index 000000000..b3b469f66 --- /dev/null +++ b/public/icons/redstone-icon-dark.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/icons/redstone-icon-light.svg b/public/icons/redstone-icon-light.svg new file mode 100644 index 000000000..951202eb0 --- /dev/null +++ b/public/icons/redstone-icon-light.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/utils/chains.ts b/utils/chains.ts index 70ee19e77..2d1ba8571 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -364,4 +364,19 @@ export default [ oracleBidsEnabled: true, checkPollingInterval: reservoirChains.astarZkEVM.checkPollingInterval, }, + { + ...customChains.redstone, + name: 'Redstone', + lightIconUrl: '/icons/redstone-icon-light.svg', + darkIconUrl: '/icons/redstone-icon-dark.svg', + reservoirBaseUrl: reservoirChains.redstone.baseApiUrl, + proxyApi: '/api/reservoir/redstone', + routePrefix: 'redstone', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'ethereum', + collectionSetId: process.env.NEXT_PUBLIC_REDSTONE_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_REDSTONE_COMMUNITY, + oracleBidsEnabled: true, + checkPollingInterval: reservoirChains.redstone.checkPollingInterval, + }, ] as ReservoirChain[] diff --git a/utils/wrappedContracts.ts b/utils/wrappedContracts.ts index 547f68bf0..ac581a448 100644 --- a/utils/wrappedContracts.ts +++ b/utils/wrappedContracts.ts @@ -21,6 +21,7 @@ const wrappedContracts: Record = { 168587773: '0x4200000000000000000000000000000000000006', //blast sepolia 81457: '0x4300000000000000000000000000000000000004', //blast 3776: '0xE9CC37904875B459Fa5D0FE37680d36F1ED55e38', // astar zkEVM + 690: '0x4200000000000000000000000000000000000006', //redstone } export default wrappedContracts diff --git a/yarn.lock b/yarn.lock index 4819d5fb6..b1447a4d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1888,10 +1888,10 @@ dependencies: merge-options "^3.0.4" -"@reservoir0x/reservoir-kit-ui@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.4.0.tgz#3a2114170c901552ff316105a7605d226eeac8de" - integrity sha512-j+V3tQah77grMwhWjPQdRDCslmOIa6moyVaFPerHhZAMVhdYJ+DFtb2RdLa4j/RusS74HKhszfAWPFQacokA1g== +"@reservoir0x/reservoir-kit-ui@2.4.6": + version "2.4.6" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.4.6.tgz#48a55d591bd642dc48d3b4847e69e5577a11de72" + integrity sha512-WIRVYWwokXDqa3VAZHXekVL0k0aUt5d8x+B6ejEi0xYKo5SAuoY9In/CYfFkeGGo8kMPWbkEirLqlTmZjnLdBQ== dependencies: "@fortawesome/fontawesome-svg-core" "^6.1.1" "@fortawesome/free-solid-svg-icons" "^6.1.1" @@ -1907,7 +1907,7 @@ "@radix-ui/react-toggle-group" "1.0.4" "@radix-ui/react-tooltip" "1.0.6" "@react-hookz/web" "^19.2.0" - "@reservoir0x/reservoir-sdk" "2.0.9" + "@reservoir0x/reservoir-sdk" "2.0.13" "@stitches/react" "1.3.1-1" dayjs "^1.11.4" flatpickr "^4.6.13" @@ -1915,10 +1915,10 @@ react-flatpickr "^3.10.13" swr "2.0.1" -"@reservoir0x/reservoir-sdk@2.0.9": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.0.9.tgz#a2baffbfb9a17ed8340ef7a8404a505590c7cae2" - integrity sha512-kDuwq8wtL8DydyqQFjmVbu9zYORNOZWNplU8i+TftswjfMOpHkmuNxjg83HiJX0QWhZ51TY3j0dx9CiTcxDF4w== +"@reservoir0x/reservoir-sdk@2.0.13": + version "2.0.13" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.0.13.tgz#2c571d4d76abefaf21dd088c524488371e0e66de" + integrity sha512-rycAw6DBBTIpXAUlhs4kdLZz1nJ/J91WV6aCNNweNgZUJx2RKT9kIbTT1gFzNbEM660pkAmNDUiybA8VyT4Dxg== dependencies: axios "^1.6.7" From a81f1eb9ed269df0cc2944ef0faa32d9aa99af24 Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Wed, 8 May 2024 17:10:46 -0400 Subject: [PATCH 49/67] resolve conflicts --- scripts/prebuild.js | 4 +- utils/chains.ts | 326 ++++++++++++++++++++++---------------------- 2 files changed, 165 insertions(+), 165 deletions(-) diff --git a/scripts/prebuild.js b/scripts/prebuild.js index efec236c2..777c317bb 100644 --- a/scripts/prebuild.js +++ b/scripts/prebuild.js @@ -41,7 +41,7 @@ deleteAllFilesInDirectory('.cache').then(() => { const filenameWithoutExt = `./${filename.replace('.js', "'")}` modifiedContents = modifiedContents.replace( filenameWithoutExt, - `${filenameWithoutExt.replace("'", '')}.mjs'` + `${filenameWithoutExt.replace("'", '')}.mjs'`, ) }) await fs.writeFileSync(originalPath, modifiedContents, 'utf-8') @@ -51,6 +51,6 @@ deleteAllFilesInDirectory('.cache').then(() => { } } processFiles() - } + }, ) }) diff --git a/utils/chains.ts b/utils/chains.ts index 3390ff48c..18aea56e8 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -1,6 +1,6 @@ -import { Currency } from "@reservoir0x/reservoir-kit-ui"; -import { reservoirChains, customChains } from "@reservoir0x/reservoir-sdk"; -import { zeroAddress } from "viem"; +import { Currency } from '@reservoir0x/reservoir-kit-ui' +import { reservoirChains, customChains } from '@reservoir0x/reservoir-sdk' +import { zeroAddress } from 'viem' import { arbitrum, mainnet, @@ -17,76 +17,76 @@ import { arbitrumNova, scroll, opBNB, -} from "wagmi/chains"; -import usdcContracts from "./usdcContracts"; +} from 'wagmi/chains' +import usdcContracts from './usdcContracts' export const ancient8Testnet = { id: 2863311531, - name: "Ancient8 Testnet", - nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }, + name: 'Ancient8 Testnet', + nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, rpcUrls: { default: { - http: ["https://rpc-testnet.ancient8.gg"], - webSocket: ["https://rpc-testnet.ancient8.gg"], + http: ['https://rpc-testnet.ancient8.gg'], + webSocket: ['https://rpc-testnet.ancient8.gg'], }, public: { - http: ["https://rpc-testnet.ancient8.gg"], - webSocket: ["https://rpc-testnet.ancient8.gg"], + http: ['https://rpc-testnet.ancient8.gg'], + webSocket: ['https://rpc-testnet.ancient8.gg'], }, }, blockExplorers: { etherscan: { - name: "a8scan", - url: "https://testnet.a8scan.io/", + name: 'a8scan', + url: 'https://testnet.a8scan.io/', }, default: { - name: "a8scan", - url: "https://testnet.a8scan.io/", + name: 'a8scan', + url: 'https://testnet.a8scan.io/', }, }, -} as const satisfies Chain; +} as const satisfies Chain //CONFIGURABLE: The default export controls the supported chains for the marketplace. Removing // or adding chains will result in adding more or less chains to the marketplace. // They are an extension of the wagmi chain objects export type ReservoirChain = Chain & { - lightIconUrl: string; - darkIconUrl: string; - reservoirBaseUrl: string; - proxyApi?: string; - routePrefix: string; - apiKey?: string; - coingeckoId?: string; - collectionSetId?: string; - community?: string; - wssUrl?: string; - listingCurrencies?: Currency[]; - oracleBidsEnabled?: boolean; - checkPollingInterval?: number; - paperContractId?: string; -}; + lightIconUrl: string + darkIconUrl: string + reservoirBaseUrl: string + proxyApi?: string + routePrefix: string + apiKey?: string + coingeckoId?: string + collectionSetId?: string + community?: string + wssUrl?: string + listingCurrencies?: Currency[] + oracleBidsEnabled?: boolean + checkPollingInterval?: number + paperContractId?: string +} const nativeCurrencyBase = { contract: zeroAddress, - symbol: "ETH", + symbol: 'ETH', decimals: 18, - coinGeckoId: "ethereum", -}; + coinGeckoId: 'ethereum', +} const usdcCurrencyBase = { - contract: "", - symbol: "USDC", + contract: '', + symbol: 'USDC', decimals: 6, - coinGeckoId: "usd-coin", -}; + coinGeckoId: 'usd-coin', +} export const DefaultChain: ReservoirChain = { ...mainnet, // Any url to display the logo of the chain in light mode - lightIconUrl: "/icons/eth-icon-dark.svg", + lightIconUrl: '/icons/eth-icon-dark.svg', // Any url to display the logo of the chain in dark mode - darkIconUrl: "/icons/eth-icon-light.svg", + darkIconUrl: '/icons/eth-icon-light.svg', // The base url of the reservoir api, this is used in the app when // directly interacting with the reservoir indexer servers (in the api proxy for example) // or when prefetching server side rendered data @@ -95,15 +95,15 @@ export const DefaultChain: ReservoirChain = { // Prevents the api key from being leaked in the clientside requests // If you'd like to disable proxying you can just change the proxyApi to the reservoirBaseUrl // Doing so will omit the api key unless further changes are made - proxyApi: "/api/reservoir/ethereum", + proxyApi: '/api/reservoir/ethereum', // A prefix used in the asset specific routes on the app (tokens/collections) - routePrefix: "ethereum", + routePrefix: 'ethereum', // Coingecko id, used to convert the chain's native prices to usd. Can be found here: // https://www.coingecko.com/en/api/documentation#operations-coins-get_coins_list - coingeckoId: "ethereum", + coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_ETH_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_ETH_COMMUNITY, - wssUrl: "wss://ws.reservoir.tools", + wssUrl: 'wss://ws.reservoir.tools', listingCurrencies: [ nativeCurrencyBase, { @@ -114,37 +114,37 @@ export const DefaultChain: ReservoirChain = { oracleBidsEnabled: true, checkPollingInterval: reservoirChains.mainnet.checkPollingInterval, paperContractId: process.env.PAPER_ETHEREUM_CONTRACT_ID, -}; +} export default [ DefaultChain, { ...polygon, - lightIconUrl: "/icons/polygon-icon-dark.svg", - darkIconUrl: "/icons/polygon-icon-light.svg", + lightIconUrl: '/icons/polygon-icon-dark.svg', + darkIconUrl: '/icons/polygon-icon-light.svg', reservoirBaseUrl: reservoirChains.polygon.baseApiUrl, - proxyApi: "/api/reservoir/polygon", - routePrefix: "polygon", - coingeckoId: "matic-network", + proxyApi: '/api/reservoir/polygon', + routePrefix: 'polygon', + coingeckoId: 'matic-network', collectionSetId: process.env.NEXT_PUBLIC_POLYGON_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_POLYGON_COMMUNITY, paperContractId: process.env.PAPER_POLYGON_CONTRACT_ID, - wssUrl: "wss://ws-polygon.reservoir.tools", + wssUrl: 'wss://ws-polygon.reservoir.tools', listingCurrencies: [ { ...nativeCurrencyBase, - symbol: "MATIC", - coinGeckoId: "matic-network", + symbol: 'MATIC', + coinGeckoId: 'matic-network', }, { ...usdcCurrencyBase, contract: usdcContracts[polygon.id], }, { - contract: "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619", - symbol: "WETH", + contract: '0x7ceb23fd6bc0add59e62ac25578270cff1b9f619', + symbol: 'WETH', decimals: 18, - coinGeckoId: "weth", + coinGeckoId: 'weth', }, ], oracleBidsEnabled: true, @@ -152,18 +152,18 @@ export default [ }, { ...arbitrum, - name: "Arbitrum", - lightIconUrl: "/icons/arbitrum-icon-dark.svg", - darkIconUrl: "/icons/arbitrum-icon-light.svg", + name: 'Arbitrum', + lightIconUrl: '/icons/arbitrum-icon-dark.svg', + darkIconUrl: '/icons/arbitrum-icon-light.svg', reservoirBaseUrl: reservoirChains.arbitrum.baseApiUrl, - proxyApi: "/api/reservoir/arbitrum", - routePrefix: "arbitrum", - coingeckoId: "arbitrum-iou", + proxyApi: '/api/reservoir/arbitrum', + routePrefix: 'arbitrum', + coingeckoId: 'arbitrum-iou', collectionSetId: process.env.NEXT_PUBLIC_ARBITRUM_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_ARBITRUM_COMMUNITY, - wssUrl: "wss://ws-arbitrum.reservoir.tools", + wssUrl: 'wss://ws-arbitrum.reservoir.tools', listingCurrencies: [ - { ...nativeCurrencyBase, coinGeckoId: "arbitrum-iou" }, + { ...nativeCurrencyBase, coinGeckoId: 'arbitrum-iou' }, { ...usdcCurrencyBase, contract: usdcContracts[arbitrum.id], @@ -174,12 +174,12 @@ export default [ }, { ...base, - lightIconUrl: "/icons/base-icon-dark.svg", - darkIconUrl: "/icons/base-icon-light.svg", + lightIconUrl: '/icons/base-icon-dark.svg', + darkIconUrl: '/icons/base-icon-light.svg', reservoirBaseUrl: reservoirChains.base.baseApiUrl, - proxyApi: "/api/reservoir/base", - routePrefix: "base", - coingeckoId: "ethereum", + proxyApi: '/api/reservoir/base', + routePrefix: 'base', + coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_BASE_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_BASE_COMMUNITY, oracleBidsEnabled: true, @@ -187,18 +187,18 @@ export default [ }, { ...optimism, - name: "Optimism", - lightIconUrl: "/icons/optimism-icon-dark.svg", - darkIconUrl: "/icons/optimism-icon-light.svg", + name: 'Optimism', + lightIconUrl: '/icons/optimism-icon-dark.svg', + darkIconUrl: '/icons/optimism-icon-light.svg', reservoirBaseUrl: reservoirChains.optimism.baseApiUrl, - proxyApi: "/api/reservoir/optimism", - routePrefix: "optimism", - coingeckoId: "optimism", + proxyApi: '/api/reservoir/optimism', + routePrefix: 'optimism', + coingeckoId: 'optimism', collectionSetId: process.env.NEXT_PUBLIC_OPTIMISM_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_OPTIMISM_COMMUNITY, - wssUrl: "wss://ws-optimism.reservoir.tools", + wssUrl: 'wss://ws-optimism.reservoir.tools', listingCurrencies: [ - { ...nativeCurrencyBase, coinGeckoId: "optimism" }, + { ...nativeCurrencyBase, coinGeckoId: 'optimism' }, { ...usdcCurrencyBase, contract: usdcContracts[optimism.id], @@ -209,29 +209,29 @@ export default [ }, { ...zora, - name: "Zora", - lightIconUrl: "/icons/zora-icon-dark.svg", - darkIconUrl: "/icons/zora-icon-light.svg", + name: 'Zora', + lightIconUrl: '/icons/zora-icon-dark.svg', + darkIconUrl: '/icons/zora-icon-light.svg', reservoirBaseUrl: reservoirChains.zora.baseApiUrl, - proxyApi: "/api/reservoir/zora", - routePrefix: "zora", - coingeckoId: "ethereum", + proxyApi: '/api/reservoir/zora', + routePrefix: 'zora', + coingeckoId: 'ethereum', oracleBidsEnabled: true, checkPollingInterval: reservoirChains.zora.checkPollingInterval, }, { ...bsc, - lightIconUrl: "/icons/bsc-icon-dark.svg", - darkIconUrl: "/icons/bsc-icon-light.svg", + lightIconUrl: '/icons/bsc-icon-dark.svg', + darkIconUrl: '/icons/bsc-icon-light.svg', reservoirBaseUrl: reservoirChains.bsc.baseApiUrl, - proxyApi: "/api/reservoir/bsc", - routePrefix: "bsc", - coingeckoId: "binancecoin", + proxyApi: '/api/reservoir/bsc', + routePrefix: 'bsc', + coingeckoId: 'binancecoin', collectionSetId: process.env.NEXT_PUBLIC_BSC_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_BSC_COMMUNITY, - wssUrl: "wss://ws-bsc.reservoir.tools", + wssUrl: 'wss://ws-bsc.reservoir.tools', listingCurrencies: [ - { ...nativeCurrencyBase, coinGeckoId: "binancecoin" }, + { ...nativeCurrencyBase, coinGeckoId: 'binancecoin' }, { ...usdcCurrencyBase, contract: usdcContracts[bsc.id], @@ -242,34 +242,34 @@ export default [ }, { ...opBNB, - lightIconUrl: "/icons/bsc-icon-dark.svg", - darkIconUrl: "/icons/bsc-icon-light.svg", + lightIconUrl: '/icons/bsc-icon-dark.svg', + darkIconUrl: '/icons/bsc-icon-light.svg', reservoirBaseUrl: reservoirChains.opBnb.baseApiUrl, - proxyApi: "/api/reservoir/opbnb", - routePrefix: "opbnb", - coingeckoId: "binancecoin", + proxyApi: '/api/reservoir/opbnb', + routePrefix: 'opbnb', + coingeckoId: 'binancecoin', oracleBidsEnabled: true, checkPollingInterval: reservoirChains.opBnb.checkPollingInterval, }, { ...customChains.ancient8, - lightIconUrl: "/icons/ancient8-icon-dark.svg", - darkIconUrl: "/icons/ancient8-icon-light.svg", + lightIconUrl: '/icons/ancient8-icon-dark.svg', + darkIconUrl: '/icons/ancient8-icon-light.svg', reservoirBaseUrl: reservoirChains.ancient8.baseApiUrl, - proxyApi: "/api/reservoir/ancient8", - routePrefix: "ancient8", - coingeckoId: "ethereum", + proxyApi: '/api/reservoir/ancient8', + routePrefix: 'ancient8', + coingeckoId: 'ethereum', oracleBidsEnabled: true, checkPollingInterval: reservoirChains.ancient8.checkPollingInterval, }, { ...avalanche, - lightIconUrl: "/icons/avalanche-icon-dark.svg", - darkIconUrl: "/icons/avalanche-icon-light.svg", + lightIconUrl: '/icons/avalanche-icon-dark.svg', + darkIconUrl: '/icons/avalanche-icon-light.svg', reservoirBaseUrl: reservoirChains.avalanche.baseApiUrl, - proxyApi: "/api/reservoir/avalanche", - routePrefix: "avalanche", - coingeckoId: "avalanche-2", + proxyApi: '/api/reservoir/avalanche', + routePrefix: 'avalanche', + coingeckoId: 'avalanche-2', collectionSetId: process.env.NEXT_PUBLIC_AVALANCHE_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_AVALANCHE_COMMUNITY, oracleBidsEnabled: true, @@ -277,12 +277,12 @@ export default [ }, { ...arbitrumNova, - lightIconUrl: "/icons/arbitrum-nova-icon-dark.svg", - darkIconUrl: "/icons/arbitrum-nova-icon-light.svg", + lightIconUrl: '/icons/arbitrum-nova-icon-dark.svg', + darkIconUrl: '/icons/arbitrum-nova-icon-light.svg', reservoirBaseUrl: reservoirChains.arbitrumNova.baseApiUrl, - proxyApi: "/api/reservoir/arbitrum-nova", - routePrefix: "arbitrum-nova", - coingeckoId: "ethereum", + proxyApi: '/api/reservoir/arbitrum-nova', + routePrefix: 'arbitrum-nova', + coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_ARBITRUM_NOVA_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_ARBITRUM_NOVA_COMMUNITY, oracleBidsEnabled: true, @@ -290,12 +290,12 @@ export default [ }, { ...linea, - lightIconUrl: "/icons/linea-icon-dark.svg", - darkIconUrl: "/icons/linea-icon-light.svg", + lightIconUrl: '/icons/linea-icon-dark.svg', + darkIconUrl: '/icons/linea-icon-light.svg', reservoirBaseUrl: reservoirChains.linea.baseApiUrl, - proxyApi: "/api/reservoir/linea", - routePrefix: "linea", - coingeckoId: "ethereum", + proxyApi: '/api/reservoir/linea', + routePrefix: 'linea', + coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_LINEA_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_LINEA_COMMUNITY, oracleBidsEnabled: true, @@ -303,13 +303,13 @@ export default [ }, { ...polygonZkEvm, - lightIconUrl: "/icons/polygon-zkevm-icon-dark.svg", - darkIconUrl: "/icons/polygon-zkevm-icon-light.svg", + lightIconUrl: '/icons/polygon-zkevm-icon-dark.svg', + darkIconUrl: '/icons/polygon-zkevm-icon-light.svg', reservoirBaseUrl: reservoirChains.polygonZkEvm.baseApiUrl, - proxyApi: "/api/reservoir/polygon-zkevm", - routePrefix: "polygon-zkevm", + proxyApi: '/api/reservoir/polygon-zkevm', + routePrefix: 'polygon-zkevm', apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: "ethereum", + coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_POLYGON_ZKEVM_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_POLYGON_ZKEVM_COMMUNITY, oracleBidsEnabled: true, @@ -317,14 +317,14 @@ export default [ }, { ...zkSync, - name: "zkSync", - lightIconUrl: "/icons/zksync-icon-dark.svg", - darkIconUrl: "/icons/zksync-icon-light.svg", + name: 'zkSync', + lightIconUrl: '/icons/zksync-icon-dark.svg', + darkIconUrl: '/icons/zksync-icon-light.svg', reservoirBaseUrl: reservoirChains.zkSync.baseApiUrl, - proxyApi: "/api/reservoir/zksync", - routePrefix: "zksync", + proxyApi: '/api/reservoir/zksync', + routePrefix: 'zksync', apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: "ethereum", + coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_ZKSYNC_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_ZKSYNC_COMMUNITY, oracleBidsEnabled: true, @@ -332,14 +332,14 @@ export default [ }, { ...scroll, - name: "Scroll", - lightIconUrl: "/icons/scroll-testnet-icon-dark.svg", - darkIconUrl: "/icons/scroll-testnet-icon-light.svg", + name: 'Scroll', + lightIconUrl: '/icons/scroll-testnet-icon-dark.svg', + darkIconUrl: '/icons/scroll-testnet-icon-light.svg', reservoirBaseUrl: reservoirChains.scroll.baseApiUrl, - proxyApi: "/api/reservoir/scroll", - routePrefix: "scroll", + proxyApi: '/api/reservoir/scroll', + routePrefix: 'scroll', apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: "ethereum", + coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_SCROLL_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_SCROLL_COMMUNITY, oracleBidsEnabled: true, @@ -347,14 +347,14 @@ export default [ }, { ...customChains.apexPop, - name: "Apex", - lightIconUrl: "/icons/apex-pop-icon-light.svg", - darkIconUrl: "/icons/apex-pop-icon-dark.svg", + name: 'Apex', + lightIconUrl: '/icons/apex-pop-icon-light.svg', + darkIconUrl: '/icons/apex-pop-icon-dark.svg', reservoirBaseUrl: reservoirChains.apexPop.baseApiUrl, - proxyApi: "/api/reservoir/apex", - routePrefix: "apex", + proxyApi: '/api/reservoir/apex', + routePrefix: 'apex', apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: "ethereum", + coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_APE_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_APEX_COMMUNITY, oracleBidsEnabled: true, @@ -362,14 +362,14 @@ export default [ }, { ...customChains.blast, - name: "Blast", - lightIconUrl: "/icons/blast-icon-light.svg", - darkIconUrl: "/icons/blast-icon-dark.svg", + name: 'Blast', + lightIconUrl: '/icons/blast-icon-light.svg', + darkIconUrl: '/icons/blast-icon-dark.svg', reservoirBaseUrl: reservoirChains.blast.baseApiUrl, - proxyApi: "/api/reservoir/blast", - routePrefix: "blast", + proxyApi: '/api/reservoir/blast', + routePrefix: 'blast', apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: "ethereum", + coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_BLAST_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_BLAST_COMMUNITY, oracleBidsEnabled: true, @@ -377,14 +377,14 @@ export default [ }, { ...customChains.astarZkEVM, - name: "Astar ZkEVM", - lightIconUrl: "/icons/astar-zkevm-icon-light.svg", - darkIconUrl: "/icons/astar-zkevm-icon-dark.svg", + name: 'Astar ZkEVM', + lightIconUrl: '/icons/astar-zkevm-icon-light.svg', + darkIconUrl: '/icons/astar-zkevm-icon-dark.svg', reservoirBaseUrl: reservoirChains.astarZkEVM.baseApiUrl, - proxyApi: "/api/reservoir/astar-zkevm", - routePrefix: "astar-zkevm", + proxyApi: '/api/reservoir/astar-zkevm', + routePrefix: 'astar-zkevm', apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: "ethereum", + coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_ASTAR_ZKEVM_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_ASTAR_ZKEVM_COMMUNITY, oracleBidsEnabled: true, @@ -392,14 +392,14 @@ export default [ }, { ...customChains.redstone, - name: "Redstone", - lightIconUrl: "/icons/redstone-icon-light.svg", - darkIconUrl: "/icons/redstone-icon-dark.svg", + name: 'Redstone', + lightIconUrl: '/icons/redstone-icon-light.svg', + darkIconUrl: '/icons/redstone-icon-dark.svg', reservoirBaseUrl: reservoirChains.redstone.baseApiUrl, - proxyApi: "/api/reservoir/redstone", - routePrefix: "redstone", + proxyApi: '/api/reservoir/redstone', + routePrefix: 'redstone', apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: "ethereum", + coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_REDSTONE_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_REDSTONE_COMMUNITY, oracleBidsEnabled: true, @@ -407,16 +407,16 @@ export default [ }, { ...customChains.degen, - name: "Degen", - lightIconUrl: "/icons/degen-icon-light.svg", - darkIconUrl: "/icons/degen-icon-dark.svg", + name: 'Degen', + lightIconUrl: '/icons/degen-icon-light.svg', + darkIconUrl: '/icons/degen-icon-dark.svg', reservoirBaseUrl: reservoirChains.degen.baseApiUrl, - proxyApi: "/api/reservoir/degen", - routePrefix: "degen", + proxyApi: '/api/reservoir/degen', + routePrefix: 'degen', apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: "degen-base", + coingeckoId: 'degen-base', collectionSetId: process.env.NEXT_PUBLIC_DEGEN_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_DEGEN_COMMUNITY, checkPollingInterval: reservoirChains.degen.checkPollingInterval, }, -] as ReservoirChain[]; +] as ReservoirChain[] From 7c017bfbd6a3d667b66dec9df100d9c02a9ef0d9 Mon Sep 17 00:00:00 2001 From: Jaden Date: Tue, 21 May 2024 10:04:56 -0400 Subject: [PATCH 50/67] feat: adding cyber --- package.json | 2 +- public/icons/cyber-icon-dark.svg | 10 ++++++++++ public/icons/cyber-icon-light.svg | 10 ++++++++++ utils/chains.ts | 15 +++++++++++++++ utils/paymentTokens.ts | 17 +++++++++++++++++ utils/wrappedContracts.ts | 1 + yarn.lock | 18 +++++++++--------- 7 files changed, 63 insertions(+), 10 deletions(-) create mode 100644 public/icons/cyber-icon-dark.svg create mode 100644 public/icons/cyber-icon-light.svg diff --git a/package.json b/package.json index 4a5c81541..f772163da 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@radix-ui/react-toggle-group": "^1.0.1", "@radix-ui/react-tooltip": "1.0.6", "@rainbow-me/rainbowkit": "2.0.0", - "@reservoir0x/reservoir-kit-ui": "^2.5.8", + "@reservoir0x/reservoir-kit-ui": "^2.5.10", "@sentry/nextjs": "^7.85.0", "@tanstack/react-query": "5.20.2", "@types/uuid": "^9.0.1", diff --git a/public/icons/cyber-icon-dark.svg b/public/icons/cyber-icon-dark.svg new file mode 100644 index 000000000..49d7ac958 --- /dev/null +++ b/public/icons/cyber-icon-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/icons/cyber-icon-light.svg b/public/icons/cyber-icon-light.svg new file mode 100644 index 000000000..a1b5a07e8 --- /dev/null +++ b/public/icons/cyber-icon-light.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/utils/chains.ts b/utils/chains.ts index b48ae852b..fb2945123 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -465,4 +465,19 @@ export default [ oracleBidsEnabled: true, checkPollingInterval: reservoirChains.degen.checkPollingInterval, }, + { + ...customChains.cyber, + name: 'Cyber', + lightIconUrl: '/icons/cyber-icon-light.svg', + darkIconUrl: '/icons/cyber-icon-dark.svg', + reservoirBaseUrl: reservoirChains.cyber.baseApiUrl, + proxyApi: '/api/reservoir/cyber', + routePrefix: 'cyber', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'cyberconnect', + collectionSetId: process.env.NEXT_PUBLIC_CYBER_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_CYBER_COMMUNITY, + oracleBidsEnabled: true, + checkPollingInterval: reservoirChains.cyber.checkPollingInterval, + }, ] as ReservoirChain[] diff --git a/utils/paymentTokens.ts b/utils/paymentTokens.ts index 99ac0fda6..4607fec68 100644 --- a/utils/paymentTokens.ts +++ b/utils/paymentTokens.ts @@ -608,4 +608,21 @@ export const chainPaymentTokensMap = { decimals: 18, }, ], + // cyber + 7560: [ + { + chainId: 7560, + address: zeroAddress, + symbol: 'ETH', + name: 'Cyber ETH', + decimals: 18, + }, + { + chainId: 7560, + address: '0x4200000000000000000000000000000000000006', + symbol: 'WETH', + name: 'Cyber WETH', + decimals: 18, + }, + ], } as Record diff --git a/utils/wrappedContracts.ts b/utils/wrappedContracts.ts index 4ad2b9b8b..3539facc1 100644 --- a/utils/wrappedContracts.ts +++ b/utils/wrappedContracts.ts @@ -22,6 +22,7 @@ const wrappedContracts: Record = { 666666666: '0xeb54dacb4c2ccb64f8074eceea33b5ebb38e5387', // degen 660279: '0x3fb787101dc6be47cfe18aeee15404dcc842e6af', // xai 1482601649: '0xab01bad2c86e24d371a13ed6367bdca819589c5d', // nebula + 7560: '0x4200000000000000000000000000000000000006', // cyber } export default wrappedContracts diff --git a/yarn.lock b/yarn.lock index 82ed59505..b605cb6e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,10 +1895,10 @@ dependencies: merge-options "^3.0.4" -"@reservoir0x/reservoir-kit-ui@^2.5.8": - version "2.5.8" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.8.tgz#5ddcb83b7c31fc5584399780f1d1836a186bbc4d" - integrity sha512-9R5Mj8o6Fb8B0gpyFzBTFFcEdJtBH11v/1smuXSB+trfQcn/dEWBc1eLAypGenQvLmMlZCgx29p+WaFutYx6Dg== +"@reservoir0x/reservoir-kit-ui@^2.5.10": + version "2.5.10" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.10.tgz#332703fa92b4b3461b7745ae5753f1e6f328bec8" + integrity sha512-ChP6ERjP7itcAHFKWPudxDRo1DI+YcMCQBxoWk9kBPjV1IeaT71uvSu/YwWUPVTfSx83dsoWv/fUcuxMbX9PNA== dependencies: "@fortawesome/fontawesome-svg-core" "^6.1.1" "@fortawesome/free-solid-svg-icons" "^6.1.1" @@ -1914,7 +1914,7 @@ "@radix-ui/react-toggle-group" "1.0.4" "@radix-ui/react-tooltip" "1.0.6" "@react-hookz/web" "^19.2.0" - "@reservoir0x/reservoir-sdk" "2.2.0" + "@reservoir0x/reservoir-sdk" "2.2.1" "@stitches/react" "1.3.1-1" dayjs "^1.11.4" flatpickr "^4.6.13" @@ -1922,10 +1922,10 @@ react-flatpickr "^3.10.13" swr "2.0.1" -"@reservoir0x/reservoir-sdk@2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.0.tgz#94eea0fede355a217aa38813660c975949e94b78" - integrity sha512-lmjLFCvsBL8fVC0/Jzg3xm/wVyO7c738aeV7WvD5MUvvbwaxwzIeLwh7+CVO6JdyTaDhsBjyfAgGW9aC4OGwlA== +"@reservoir0x/reservoir-sdk@2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.1.tgz#ff460e1224f8d0721802b0df5c1a1e001960e88b" + integrity sha512-6vCNr/TkjA+ElblVM8V8ZL8Q5x2yYjBhVmr5T5snakV0Z0Fh//uQ3Q36hYBuuth4tzgjKe3bM//rBYZPDjSjEQ== dependencies: axios "^1.6.7" From ba7349cc4c23572bcb148c2a375f650c4e011643 Mon Sep 17 00:00:00 2001 From: Jaden Date: Tue, 21 May 2024 10:25:48 -0400 Subject: [PATCH 51/67] feat: removing duplicated degen --- utils/chains.ts | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/utils/chains.ts b/utils/chains.ts index fb2945123..46b6eae02 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -450,21 +450,6 @@ export default [ oracleBidsEnabled: true, checkPollingInterval: reservoirChains.nebula.checkPollingInterval, }, - { - ...customChains.degen, - name: 'Degen', - lightIconUrl: '/icons/degen-icon-light.svg', - darkIconUrl: '/icons/degen-icon-dark.svg', - reservoirBaseUrl: reservoirChains.degen.baseApiUrl, - proxyApi: '/api/reservoir/degen', - routePrefix: 'degen', - apiKey: process.env.RESERVOIR_API_KEY, - coingeckoId: 'degen-base', - collectionSetId: process.env.NEXT_PUBLIC_DEGEN_COLLECTION_SET_ID, - community: process.env.NEXT_PUBLIC_DEGEN_COMMUNITY, - oracleBidsEnabled: true, - checkPollingInterval: reservoirChains.degen.checkPollingInterval, - }, { ...customChains.cyber, name: 'Cyber', From 7fb391832acc849a374e23dad6dd799d3c6ae735 Mon Sep 17 00:00:00 2001 From: Jaden Date: Tue, 21 May 2024 14:24:03 -0400 Subject: [PATCH 52/67] feat: adding xai and nebula payment tokens --- utils/chains.ts | 60 +++++++++++++++++++++--------------------- utils/paymentTokens.ts | 29 ++++++++++++++++++++ 2 files changed, 59 insertions(+), 30 deletions(-) diff --git a/utils/chains.ts b/utils/chains.ts index ddf2c2a46..19c0c48c1 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -379,34 +379,34 @@ export default [ oracleBidsEnabled: true, checkPollingInterval: reservoirChains.degen.checkPollingInterval, }, - // { - // ...customChains.xai, - // name: 'Xai', - // lightIconUrl: '/icons/xai-icon-light.svg', - // darkIconUrl: '/icons/xai-icon-dark.svg', - // reservoirBaseUrl: reservoirChains.xai.baseApiUrl, - // proxyApi: '/api/reservoir/xai', - // routePrefix: 'xai', - // apiKey: process.env.RESERVOIR_API_KEY, - // coingeckoId: 'xai-blockchain', - // collectionSetId: process.env.NEXT_PUBLIC_XAI_COLLECTION_SET_ID, - // community: process.env.NEXT_PUBLIC_XAI_COMMUNITY, - // oracleBidsEnabled: true, - // checkPollingInterval: reservoirChains.xai.checkPollingInterval, - // }, - // { - // ...customChains.nebula, - // name: 'Nebula', - // lightIconUrl: '/icons/nebula-icon-light.svg', - // darkIconUrl: '/icons/nebula-icon-dark.svg', - // reservoirBaseUrl: reservoirChains.nebula.baseApiUrl, - // proxyApi: '/api/reservoir/nebula', - // routePrefix: 'nebula', - // apiKey: process.env.RESERVOIR_API_KEY, - // coingeckoId: 'ethereum', - // collectionSetId: process.env.NEXT_PUBLIC_NEBULA_COLLECTION_SET_ID, - // community: process.env.NEXT_PUBLIC_NEBULA_COMMUNITY, - // oracleBidsEnabled: true, - // checkPollingInterval: reservoirChains.nebula.checkPollingInterval, - // }, + { + ...customChains.xai, + name: 'Xai', + lightIconUrl: '/icons/xai-icon-light.svg', + darkIconUrl: '/icons/xai-icon-dark.svg', + reservoirBaseUrl: reservoirChains.xai.baseApiUrl, + proxyApi: '/api/reservoir/xai', + routePrefix: 'xai', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'xai-blockchain', + collectionSetId: process.env.NEXT_PUBLIC_XAI_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_XAI_COMMUNITY, + oracleBidsEnabled: true, + checkPollingInterval: reservoirChains.xai.checkPollingInterval, + }, + { + ...customChains.nebula, + name: 'Nebula', + lightIconUrl: '/icons/nebula-icon-light.svg', + darkIconUrl: '/icons/nebula-icon-dark.svg', + reservoirBaseUrl: reservoirChains.nebula.baseApiUrl, + proxyApi: '/api/reservoir/nebula', + routePrefix: 'nebula', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'ethereum', + collectionSetId: process.env.NEXT_PUBLIC_NEBULA_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_NEBULA_COMMUNITY, + oracleBidsEnabled: true, + checkPollingInterval: reservoirChains.nebula.checkPollingInterval, + }, ] as ReservoirChain[] diff --git a/utils/paymentTokens.ts b/utils/paymentTokens.ts index 99ac0fda6..04b68d5f2 100644 --- a/utils/paymentTokens.ts +++ b/utils/paymentTokens.ts @@ -608,4 +608,33 @@ export const chainPaymentTokensMap = { decimals: 18, }, ], + + // Xai + 660279: [ + { + chainId: 660279, + address: zeroAddress, + symbol: 'XAI', + name: 'Xai', + decimals: 18, + }, + { + chainId: 660279, + address: '0x3fb787101dc6be47cfe18aeee15404dcc842e6af', + symbol: 'WXAI', + name: 'WXAI', + decimals: 18, + }, + ], + + // Nebula + 1482601649: [ + { + chainId: 1482601649, + address: zeroAddress, + symbol: 'SFUEL', + name: 'SFUEL', + decimals: 18, + }, + ], } as Record From 990307ab9865b39fbc1056dafbbc2d762cee288d Mon Sep 17 00:00:00 2001 From: Jaden Date: Tue, 21 May 2024 15:15:41 -0400 Subject: [PATCH 53/67] feat: adding cyber --- utils/chains.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/utils/chains.ts b/utils/chains.ts index 9af1c5bdc..46b6eae02 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -450,4 +450,19 @@ export default [ oracleBidsEnabled: true, checkPollingInterval: reservoirChains.nebula.checkPollingInterval, }, + { + ...customChains.cyber, + name: 'Cyber', + lightIconUrl: '/icons/cyber-icon-light.svg', + darkIconUrl: '/icons/cyber-icon-dark.svg', + reservoirBaseUrl: reservoirChains.cyber.baseApiUrl, + proxyApi: '/api/reservoir/cyber', + routePrefix: 'cyber', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'cyberconnect', + collectionSetId: process.env.NEXT_PUBLIC_CYBER_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_CYBER_COMMUNITY, + oracleBidsEnabled: true, + checkPollingInterval: reservoirChains.cyber.checkPollingInterval, + }, ] as ReservoirChain[] From 75f882a9baa30b69eda5d798fbcc225368c2ac9e Mon Sep 17 00:00:00 2001 From: Jaden Date: Tue, 21 May 2024 16:21:15 -0400 Subject: [PATCH 54/67] feat: adding bitlayer --- package.json | 2 +- public/icons/bitlayer-icon-dark.svg | 10 +++++ public/icons/bitlayer-icon-light.svg | 10 +++++ utils/chains.ts | 15 ++++++++ utils/paymentTokens.ts | 56 ++++++++++++++++++++++++++++ utils/wrappedContracts.ts | 1 + yarn.lock | 18 ++++----- 7 files changed, 102 insertions(+), 10 deletions(-) create mode 100644 public/icons/bitlayer-icon-dark.svg create mode 100644 public/icons/bitlayer-icon-light.svg diff --git a/package.json b/package.json index f772163da..a9bd1ac46 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@radix-ui/react-toggle-group": "^1.0.1", "@radix-ui/react-tooltip": "1.0.6", "@rainbow-me/rainbowkit": "2.0.0", - "@reservoir0x/reservoir-kit-ui": "^2.5.10", + "@reservoir0x/reservoir-kit-ui": "^2.5.12", "@sentry/nextjs": "^7.85.0", "@tanstack/react-query": "5.20.2", "@types/uuid": "^9.0.1", diff --git a/public/icons/bitlayer-icon-dark.svg b/public/icons/bitlayer-icon-dark.svg new file mode 100644 index 000000000..49d7ac958 --- /dev/null +++ b/public/icons/bitlayer-icon-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/icons/bitlayer-icon-light.svg b/public/icons/bitlayer-icon-light.svg new file mode 100644 index 000000000..a1b5a07e8 --- /dev/null +++ b/public/icons/bitlayer-icon-light.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/utils/chains.ts b/utils/chains.ts index 46b6eae02..d5cb842b7 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -465,4 +465,19 @@ export default [ oracleBidsEnabled: true, checkPollingInterval: reservoirChains.cyber.checkPollingInterval, }, + { + ...customChains.bitlayer, + name: 'Bitlayer', + lightIconUrl: '/icons/bitlayer-icon-light.svg', + darkIconUrl: '/icons/bitlayer-icon-dark.svg', + reservoirBaseUrl: reservoirChains.bitlayer.baseApiUrl, + proxyApi: '/api/reservoir/bitlayer', + routePrefix: 'bitlayer', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'bitcoin', + collectionSetId: process.env.NEXT_PUBLIC_BITLAYER_COLLECTION_SET_ID, + community: process.env.NEXT_PUBLIC_BITLAYER_COMMUNITY, + oracleBidsEnabled: true, + checkPollingInterval: reservoirChains.bitlayer.checkPollingInterval, + }, ] as ReservoirChain[] diff --git a/utils/paymentTokens.ts b/utils/paymentTokens.ts index 4607fec68..6ef3179b9 100644 --- a/utils/paymentTokens.ts +++ b/utils/paymentTokens.ts @@ -598,6 +598,7 @@ export const chainPaymentTokensMap = { decimals: 18, }, ], + // degen 666666666: [ { @@ -608,6 +609,43 @@ export const chainPaymentTokensMap = { decimals: 18, }, ], + + // xai + 660279: [ + { + chainId: 660279, + address: zeroAddress, + symbol: 'XAI', + name: 'Xai', + decimals: 18, + }, + { + chainId: 660279, + address: '0x3fb787101dc6be47cfe18aeee15404dcc842e6af', + symbol: 'WXAI', + name: 'WXAI', + decimals: 18, + }, + ], + + // nebula + 1482601649: [ + { + chainId: 1482601649, + address: zeroAddress, + symbol: 'SFUEL', + name: 'SFUEL', + decimals: 18, + }, + { + chainId: 1482601649, + address: '0xab01bad2c86e24d371a13ed6367bdca819589c5d', + symbol: 'ETH', + name: 'Europa ETH', + decimals: 18, + }, + ], + // cyber 7560: [ { @@ -625,4 +663,22 @@ export const chainPaymentTokensMap = { decimals: 18, }, ], + + // bitlayer + 200901: [ + { + chainId: 200901, + address: zeroAddress, + symbol: 'BTC', + name: 'Bitcoin', + decimals: 18, + }, + { + chainId: 200901, + address: '0xff204e2681a6fa0e2c3fade68a1b28fb90e4fc5f', + symbol: 'WBTC', + name: 'Wrapped BTC', + decimals: 18, + }, + ], } as Record diff --git a/utils/wrappedContracts.ts b/utils/wrappedContracts.ts index 3539facc1..a94222ae1 100644 --- a/utils/wrappedContracts.ts +++ b/utils/wrappedContracts.ts @@ -23,6 +23,7 @@ const wrappedContracts: Record = { 660279: '0x3fb787101dc6be47cfe18aeee15404dcc842e6af', // xai 1482601649: '0xab01bad2c86e24d371a13ed6367bdca819589c5d', // nebula 7560: '0x4200000000000000000000000000000000000006', // cyber + 200901: '0xff204e2681a6fa0e2c3fade68a1b28fb90e4fc5f', // bitlayer } export default wrappedContracts diff --git a/yarn.lock b/yarn.lock index b605cb6e1..c84e83cd0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,10 +1895,10 @@ dependencies: merge-options "^3.0.4" -"@reservoir0x/reservoir-kit-ui@^2.5.10": - version "2.5.10" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.10.tgz#332703fa92b4b3461b7745ae5753f1e6f328bec8" - integrity sha512-ChP6ERjP7itcAHFKWPudxDRo1DI+YcMCQBxoWk9kBPjV1IeaT71uvSu/YwWUPVTfSx83dsoWv/fUcuxMbX9PNA== +"@reservoir0x/reservoir-kit-ui@^2.5.12": + version "2.5.12" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.12.tgz#dd16e82c2362aeb50f3bfdd207fae086c2d6ff5b" + integrity sha512-/ouUvyuLJtWdKmYEjlF9UnnhKdeDE/aeBhCnOscHVGt7jmmATs7ap9TBQTyqLoiCVyK9J1dXJkKxdP24oZwaow== dependencies: "@fortawesome/fontawesome-svg-core" "^6.1.1" "@fortawesome/free-solid-svg-icons" "^6.1.1" @@ -1914,7 +1914,7 @@ "@radix-ui/react-toggle-group" "1.0.4" "@radix-ui/react-tooltip" "1.0.6" "@react-hookz/web" "^19.2.0" - "@reservoir0x/reservoir-sdk" "2.2.1" + "@reservoir0x/reservoir-sdk" "2.2.3" "@stitches/react" "1.3.1-1" dayjs "^1.11.4" flatpickr "^4.6.13" @@ -1922,10 +1922,10 @@ react-flatpickr "^3.10.13" swr "2.0.1" -"@reservoir0x/reservoir-sdk@2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.1.tgz#ff460e1224f8d0721802b0df5c1a1e001960e88b" - integrity sha512-6vCNr/TkjA+ElblVM8V8ZL8Q5x2yYjBhVmr5T5snakV0Z0Fh//uQ3Q36hYBuuth4tzgjKe3bM//rBYZPDjSjEQ== +"@reservoir0x/reservoir-sdk@2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.3.tgz#5a1488710e38cf955da445de6881e88e3d37f3eb" + integrity sha512-JyuEE3RC7HIISLocRjHp5XL7iIxUAnxSkAat0t+ro5ppoPB+cRSxByRtLa0xW/X26R7Nt1e5ILrlLBGvyqOfKg== dependencies: axios "^1.6.7" From 2e58232300df5b2678483e9385d1c8b5719a14f8 Mon Sep 17 00:00:00 2001 From: Jaden Date: Wed, 22 May 2024 14:06:39 -0400 Subject: [PATCH 55/67] feat: add europa eth as list currency --- utils/chains.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/utils/chains.ts b/utils/chains.ts index d5cb842b7..a1c4a7d5d 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -447,6 +447,15 @@ export default [ coingeckoId: 'ethereum', collectionSetId: process.env.NEXT_PUBLIC_NEBULA_COLLECTION_SET_ID, community: process.env.NEXT_PUBLIC_NEBULA_COMMUNITY, + listingCurrencies: [ + { + chainId: 1482601649, + address: '0xab01bad2c86e24d371a13ed6367bdca819589c5d', + symbol: 'ETH', + name: 'Europa ETH', + decimals: 18, + }, + ], oracleBidsEnabled: true, checkPollingInterval: reservoirChains.nebula.checkPollingInterval, }, From ad802a6d130ce09fcacd8743fd6756550137d445 Mon Sep 17 00:00:00 2001 From: Jaden Date: Wed, 22 May 2024 14:09:02 -0400 Subject: [PATCH 56/67] feat: adding USDC and SKL as listing currencies --- utils/chains.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/utils/chains.ts b/utils/chains.ts index a1c4a7d5d..7585176a3 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -455,6 +455,20 @@ export default [ name: 'Europa ETH', decimals: 18, }, + { + chainId: 1482601649, + address: '0xcc205196288b7a26f6d43bbd68aaa98dde97276d', + symbol: 'USDC', + name: 'USDC', + decimals: 18, + }, + { + chainId: 1482601649, + address: '0x7f73b66d4e6e67bcdeaf277b9962addcdabbfc4d', + symbol: 'SKL', + name: 'SKL', + decimals: 18, + }, ], oracleBidsEnabled: true, checkPollingInterval: reservoirChains.nebula.checkPollingInterval, From aa725f75bc5b950d48adfdda80cc70284ab9e3a2 Mon Sep 17 00:00:00 2001 From: Jaden Date: Wed, 22 May 2024 14:33:36 -0400 Subject: [PATCH 57/67] feat: adding USDC and SKL to payment tokens --- utils/paymentTokens.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/utils/paymentTokens.ts b/utils/paymentTokens.ts index 6ef3179b9..621b82aa5 100644 --- a/utils/paymentTokens.ts +++ b/utils/paymentTokens.ts @@ -644,6 +644,20 @@ export const chainPaymentTokensMap = { name: 'Europa ETH', decimals: 18, }, + { + chainId: 1482601649, + address: '0xcc205196288b7a26f6d43bbd68aaa98dde97276d', + symbol: 'USDC', + name: 'USDC', + decimals: 18, + }, + { + chainId: 1482601649, + address: '0x7f73b66d4e6e67bcdeaf277b9962addcdabbfc4d', + symbol: 'SKL', + name: 'SKL', + decimals: 18, + }, ], // cyber From 6601753b81f46c04c70cf118d0583a82a254638a Mon Sep 17 00:00:00 2001 From: Jaden Date: Thu, 23 May 2024 09:13:31 -0400 Subject: [PATCH 58/67] feat: updating bitlayer and cyber icons --- public/icons/bitlayer-icon-dark.svg | 6 +++--- public/icons/bitlayer-icon-light.svg | 6 +++--- public/icons/cyber-icon-dark.svg | 9 ++++++--- public/icons/cyber-icon-light.svg | 9 ++++++--- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/public/icons/bitlayer-icon-dark.svg b/public/icons/bitlayer-icon-dark.svg index 49d7ac958..c72f029b9 100644 --- a/public/icons/bitlayer-icon-dark.svg +++ b/public/icons/bitlayer-icon-dark.svg @@ -1,9 +1,9 @@ - - + + - + diff --git a/public/icons/bitlayer-icon-light.svg b/public/icons/bitlayer-icon-light.svg index a1b5a07e8..ef97bcfd8 100644 --- a/public/icons/bitlayer-icon-light.svg +++ b/public/icons/bitlayer-icon-light.svg @@ -1,9 +1,9 @@ - - + + - + diff --git a/public/icons/cyber-icon-dark.svg b/public/icons/cyber-icon-dark.svg index 49d7ac958..06b80b780 100644 --- a/public/icons/cyber-icon-dark.svg +++ b/public/icons/cyber-icon-dark.svg @@ -1,9 +1,12 @@ - - + + + + + - + diff --git a/public/icons/cyber-icon-light.svg b/public/icons/cyber-icon-light.svg index a1b5a07e8..15d56aa70 100644 --- a/public/icons/cyber-icon-light.svg +++ b/public/icons/cyber-icon-light.svg @@ -1,9 +1,12 @@ - - + + + + + - + From 0f24b2a0cccb58b95bf8d2be9d4922a8abb74948 Mon Sep 17 00:00:00 2001 From: Jaden Date: Thu, 23 May 2024 10:02:36 -0400 Subject: [PATCH 59/67] feat: updating reservoir-kit version --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index a9bd1ac46..026330130 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@radix-ui/react-toggle-group": "^1.0.1", "@radix-ui/react-tooltip": "1.0.6", "@rainbow-me/rainbowkit": "2.0.0", - "@reservoir0x/reservoir-kit-ui": "^2.5.12", + "@reservoir0x/reservoir-kit-ui": "^2.5.13", "@sentry/nextjs": "^7.85.0", "@tanstack/react-query": "5.20.2", "@types/uuid": "^9.0.1", diff --git a/yarn.lock b/yarn.lock index c84e83cd0..d64cd3247 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,10 +1895,10 @@ dependencies: merge-options "^3.0.4" -"@reservoir0x/reservoir-kit-ui@^2.5.12": - version "2.5.12" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.12.tgz#dd16e82c2362aeb50f3bfdd207fae086c2d6ff5b" - integrity sha512-/ouUvyuLJtWdKmYEjlF9UnnhKdeDE/aeBhCnOscHVGt7jmmATs7ap9TBQTyqLoiCVyK9J1dXJkKxdP24oZwaow== +"@reservoir0x/reservoir-kit-ui@^2.5.13": + version "2.5.13" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.13.tgz#693c122fcf9c0ce7feff39a419df10f5592b5240" + integrity sha512-w/fWRZoMBpW+XyWWMnnPTzomqpxR6iwVIfZ1BBSC7d4tkTT9SAUMYfDSNramml58mF5MzY3CYyPPf9qSuLZGLQ== dependencies: "@fortawesome/fontawesome-svg-core" "^6.1.1" "@fortawesome/free-solid-svg-icons" "^6.1.1" @@ -1914,7 +1914,7 @@ "@radix-ui/react-toggle-group" "1.0.4" "@radix-ui/react-tooltip" "1.0.6" "@react-hookz/web" "^19.2.0" - "@reservoir0x/reservoir-sdk" "2.2.3" + "@reservoir0x/reservoir-sdk" "2.2.4" "@stitches/react" "1.3.1-1" dayjs "^1.11.4" flatpickr "^4.6.13" @@ -1922,10 +1922,10 @@ react-flatpickr "^3.10.13" swr "2.0.1" -"@reservoir0x/reservoir-sdk@2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.3.tgz#5a1488710e38cf955da445de6881e88e3d37f3eb" - integrity sha512-JyuEE3RC7HIISLocRjHp5XL7iIxUAnxSkAat0t+ro5ppoPB+cRSxByRtLa0xW/X26R7Nt1e5ILrlLBGvyqOfKg== +"@reservoir0x/reservoir-sdk@2.2.4": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.4.tgz#a45f01d751671386d879de1e86d5426926dbc79b" + integrity sha512-ghHZu66p2SeDW9gKdwCVG9o9FLcCBNaW3BEDBvprRmAxtWJSeIJItSZaC0xCvYRYBfDx1eNCzYSzTvADXEb8mA== dependencies: axios "^1.6.7" From 224e1b68cf8a7629ff23641c10d6bc9ee25399ab Mon Sep 17 00:00:00 2001 From: Jaden Date: Thu, 23 May 2024 10:42:05 -0400 Subject: [PATCH 60/67] feat: updating reservoir-kit version --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 026330130..9038f8364 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@radix-ui/react-toggle-group": "^1.0.1", "@radix-ui/react-tooltip": "1.0.6", "@rainbow-me/rainbowkit": "2.0.0", - "@reservoir0x/reservoir-kit-ui": "^2.5.13", + "@reservoir0x/reservoir-kit-ui": "^2.5.15", "@sentry/nextjs": "^7.85.0", "@tanstack/react-query": "5.20.2", "@types/uuid": "^9.0.1", diff --git a/yarn.lock b/yarn.lock index d64cd3247..5d7e74097 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,10 +1895,10 @@ dependencies: merge-options "^3.0.4" -"@reservoir0x/reservoir-kit-ui@^2.5.13": - version "2.5.13" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.13.tgz#693c122fcf9c0ce7feff39a419df10f5592b5240" - integrity sha512-w/fWRZoMBpW+XyWWMnnPTzomqpxR6iwVIfZ1BBSC7d4tkTT9SAUMYfDSNramml58mF5MzY3CYyPPf9qSuLZGLQ== +"@reservoir0x/reservoir-kit-ui@^2.5.15": + version "2.5.15" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.15.tgz#d66ce09a9b74aa6b683eb964815e83567b9ac434" + integrity sha512-N8jXOpzmmnwcb/mZ6xm6Th69aQCHDkcI5CGziX0+3Cb8fSgb4TlWWHxURpG/xM0BRRCj7aO5MB4EBLzyNL+gwg== dependencies: "@fortawesome/fontawesome-svg-core" "^6.1.1" "@fortawesome/free-solid-svg-icons" "^6.1.1" @@ -1914,7 +1914,7 @@ "@radix-ui/react-toggle-group" "1.0.4" "@radix-ui/react-tooltip" "1.0.6" "@react-hookz/web" "^19.2.0" - "@reservoir0x/reservoir-sdk" "2.2.4" + "@reservoir0x/reservoir-sdk" "2.2.5" "@stitches/react" "1.3.1-1" dayjs "^1.11.4" flatpickr "^4.6.13" @@ -1922,10 +1922,10 @@ react-flatpickr "^3.10.13" swr "2.0.1" -"@reservoir0x/reservoir-sdk@2.2.4": - version "2.2.4" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.4.tgz#a45f01d751671386d879de1e86d5426926dbc79b" - integrity sha512-ghHZu66p2SeDW9gKdwCVG9o9FLcCBNaW3BEDBvprRmAxtWJSeIJItSZaC0xCvYRYBfDx1eNCzYSzTvADXEb8mA== +"@reservoir0x/reservoir-sdk@2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.5.tgz#bf09539f793e3a33ec262c1a5c7d112a80dbbbcc" + integrity sha512-bF2/3PWV/zRzMazWZRwhNhyOpCqEP5AOEga4DDgaOWpU4y/ggRxozmXHOXFP3b3PJFT3DawMausu1ah1SNVj8A== dependencies: axios "^1.6.7" From a53c7438e0b8e5f81e196a80d0b828a7cf0a3b16 Mon Sep 17 00:00:00 2001 From: Jaden Date: Thu, 23 May 2024 13:00:06 -0400 Subject: [PATCH 61/67] feat: updating reservoir-kit version --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 9038f8364..e809f4c05 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@radix-ui/react-toggle-group": "^1.0.1", "@radix-ui/react-tooltip": "1.0.6", "@rainbow-me/rainbowkit": "2.0.0", - "@reservoir0x/reservoir-kit-ui": "^2.5.15", + "@reservoir0x/reservoir-kit-ui": "^2.5.16", "@sentry/nextjs": "^7.85.0", "@tanstack/react-query": "5.20.2", "@types/uuid": "^9.0.1", diff --git a/yarn.lock b/yarn.lock index 5d7e74097..94cb051e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,10 +1895,10 @@ dependencies: merge-options "^3.0.4" -"@reservoir0x/reservoir-kit-ui@^2.5.15": - version "2.5.15" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.15.tgz#d66ce09a9b74aa6b683eb964815e83567b9ac434" - integrity sha512-N8jXOpzmmnwcb/mZ6xm6Th69aQCHDkcI5CGziX0+3Cb8fSgb4TlWWHxURpG/xM0BRRCj7aO5MB4EBLzyNL+gwg== +"@reservoir0x/reservoir-kit-ui@^2.5.16": + version "2.5.16" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.16.tgz#7de899c9cc46998c9d07e58ef29028d3a53599ed" + integrity sha512-fr5Of+HDeBgR/M5k5nPh4oVgNeYWUmpjm58KZCCdu/5qnjXUlE1jJnXMo9KLM4dVr3GyR7e/Y72u18ncJJRQug== dependencies: "@fortawesome/fontawesome-svg-core" "^6.1.1" "@fortawesome/free-solid-svg-icons" "^6.1.1" @@ -1914,7 +1914,7 @@ "@radix-ui/react-toggle-group" "1.0.4" "@radix-ui/react-tooltip" "1.0.6" "@react-hookz/web" "^19.2.0" - "@reservoir0x/reservoir-sdk" "2.2.5" + "@reservoir0x/reservoir-sdk" "2.2.6" "@stitches/react" "1.3.1-1" dayjs "^1.11.4" flatpickr "^4.6.13" @@ -1922,10 +1922,10 @@ react-flatpickr "^3.10.13" swr "2.0.1" -"@reservoir0x/reservoir-sdk@2.2.5": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.5.tgz#bf09539f793e3a33ec262c1a5c7d112a80dbbbcc" - integrity sha512-bF2/3PWV/zRzMazWZRwhNhyOpCqEP5AOEga4DDgaOWpU4y/ggRxozmXHOXFP3b3PJFT3DawMausu1ah1SNVj8A== +"@reservoir0x/reservoir-sdk@2.2.6": + version "2.2.6" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.6.tgz#39a3bd1caba3331d5f5dbe3011331c4663ae1905" + integrity sha512-U2FMQ9LuZEIGPImYo0M9QNaEqT9sSGJf1ag0twusgedtlm03v+OjjTzJ+GYCZ9lS03j8gXg7AG0VQx1PfTrgmw== dependencies: axios "^1.6.7" From cb170ec02bf86e4d2cfad806af4c2197a02bbdc4 Mon Sep 17 00:00:00 2001 From: Jaden Date: Wed, 5 Jun 2024 14:42:36 -0400 Subject: [PATCH 62/67] feat: updating reservoir kit version --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index abe16c40c..32078c30e 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@radix-ui/react-toggle-group": "^1.0.1", "@radix-ui/react-tooltip": "1.0.6", "@rainbow-me/rainbowkit": "2.0.0", - "@reservoir0x/reservoir-kit-ui": "^2.5.18", + "@reservoir0x/reservoir-kit-ui": "^2.5.19", "@sentry/nextjs": "^7.85.0", "@tanstack/react-query": "5.20.2", "@types/uuid": "^9.0.1", diff --git a/yarn.lock b/yarn.lock index f785863e8..b3eabe245 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,10 +1895,10 @@ dependencies: merge-options "^3.0.4" -"@reservoir0x/reservoir-kit-ui@^2.5.18": - version "2.5.18" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.18.tgz#bbf22b1f76822180cb4c6ab8eb05c7b73b61c90c" - integrity sha512-Zp5u396m3rJjXe5gddxYXx/jPJRTq1pWQPJAGwIjexvOxXofED7vQEmea1GBOSB5YdJP471XFSMBO3QobPEFSw== +"@reservoir0x/reservoir-kit-ui@^2.5.19": + version "2.5.19" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.19.tgz#62b7a5f307d87f056636839fd5c2dff47dd20ef0" + integrity sha512-e8g7IrUS9aaX0p0E6KzNIWpENpO9K0oZiHbnX5TZq71C3fx2QPwqwX0xkLRn+Kr8f0mMRSIyOpuqjeq7Fu1OVw== dependencies: "@fortawesome/fontawesome-svg-core" "^6.1.1" "@fortawesome/free-solid-svg-icons" "^6.1.1" @@ -1914,7 +1914,7 @@ "@radix-ui/react-toggle-group" "1.0.4" "@radix-ui/react-tooltip" "1.0.6" "@react-hookz/web" "^19.2.0" - "@reservoir0x/reservoir-sdk" "2.2.8" + "@reservoir0x/reservoir-sdk" "2.2.9" "@stitches/react" "1.3.1-1" dayjs "^1.11.4" flatpickr "^4.6.13" @@ -1922,10 +1922,10 @@ react-flatpickr "^3.10.13" swr "2.0.1" -"@reservoir0x/reservoir-sdk@2.2.8": - version "2.2.8" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.8.tgz#54cd5c370c4dbd1335c7f6f50b234f88e2847be8" - integrity sha512-8Gjae9cr20VJbNGoRi/nx5JwrR/iGRMtt9ElU8LyDxsyQ1m7HtxMOfdaa81OmZbUA5w8jEGWN5YpH9fLBYfDjg== +"@reservoir0x/reservoir-sdk@2.2.9": + version "2.2.9" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.9.tgz#e409062f122f5ad4d3fe65c2b28e9051d6cd4081" + integrity sha512-kc6/7N5FNaXmQ9nLXP8ZKkLTgO477MOyePHPXDHNM/Hpv0Xsaqmgl7UwJ39hwBWcOpT6fcMdEBvsFoykuppNEA== dependencies: axios "^1.6.7" From a3880da51bfcd930ea9856fba045dc366902b48b Mon Sep 17 00:00:00 2001 From: Jaden Date: Wed, 5 Jun 2024 14:46:01 -0400 Subject: [PATCH 63/67] feat: fixing nebula chain config --- utils/chains.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/chains.ts b/utils/chains.ts index 1c61c74e7..0554b57ec 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -17,6 +17,7 @@ import { arbitrumNova, scroll, opBNB, + skaleNebula, } from 'wagmi/chains' import usdcContracts from './usdcContracts' @@ -436,7 +437,7 @@ export default [ checkPollingInterval: reservoirChains.xai.checkPollingInterval, }, { - ...customChains.nebula, + ...skaleNebula, name: 'Nebula', lightIconUrl: '/icons/nebula-icon-light.svg', darkIconUrl: '/icons/nebula-icon-dark.svg', From 4cf23508de64cddee8b80163facb0802d272851a Mon Sep 17 00:00:00 2001 From: Jaden Date: Wed, 5 Jun 2024 17:24:16 -0400 Subject: [PATCH 64/67] feat: updating reservoir kit version --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 32078c30e..bef4ac618 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@radix-ui/react-toggle-group": "^1.0.1", "@radix-ui/react-tooltip": "1.0.6", "@rainbow-me/rainbowkit": "2.0.0", - "@reservoir0x/reservoir-kit-ui": "^2.5.19", + "@reservoir0x/reservoir-kit-ui": "^2.5.20", "@sentry/nextjs": "^7.85.0", "@tanstack/react-query": "5.20.2", "@types/uuid": "^9.0.1", diff --git a/yarn.lock b/yarn.lock index b3eabe245..aeddf7b97 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,10 +1895,10 @@ dependencies: merge-options "^3.0.4" -"@reservoir0x/reservoir-kit-ui@^2.5.19": - version "2.5.19" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.19.tgz#62b7a5f307d87f056636839fd5c2dff47dd20ef0" - integrity sha512-e8g7IrUS9aaX0p0E6KzNIWpENpO9K0oZiHbnX5TZq71C3fx2QPwqwX0xkLRn+Kr8f0mMRSIyOpuqjeq7Fu1OVw== +"@reservoir0x/reservoir-kit-ui@^2.5.20": + version "2.5.20" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.20.tgz#1e819064058d57b148bc5acb6c2a1a616b9f2070" + integrity sha512-P6eIu5VmZ/4phT7bKp50RK2x/2LU6OeIq+MhkBjdIeOB+pVQXzrkCbEG8BmtW7S9YYe94TJYVQl71MqizM/88g== dependencies: "@fortawesome/fontawesome-svg-core" "^6.1.1" "@fortawesome/free-solid-svg-icons" "^6.1.1" @@ -1914,7 +1914,7 @@ "@radix-ui/react-toggle-group" "1.0.4" "@radix-ui/react-tooltip" "1.0.6" "@react-hookz/web" "^19.2.0" - "@reservoir0x/reservoir-sdk" "2.2.9" + "@reservoir0x/reservoir-sdk" "2.2.10" "@stitches/react" "1.3.1-1" dayjs "^1.11.4" flatpickr "^4.6.13" @@ -1922,10 +1922,10 @@ react-flatpickr "^3.10.13" swr "2.0.1" -"@reservoir0x/reservoir-sdk@2.2.9": - version "2.2.9" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.9.tgz#e409062f122f5ad4d3fe65c2b28e9051d6cd4081" - integrity sha512-kc6/7N5FNaXmQ9nLXP8ZKkLTgO477MOyePHPXDHNM/Hpv0Xsaqmgl7UwJ39hwBWcOpT6fcMdEBvsFoykuppNEA== +"@reservoir0x/reservoir-sdk@2.2.10": + version "2.2.10" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.10.tgz#0fc8346388d696b09b9a306349c85c241188fc1e" + integrity sha512-gslkzt4hvFGAn0EqMmB+bwBA8TAt0YCZ5O1Pf3kzXgsG3LTQoV5ScB1K6KgAHb2tjeUBAS1rN8sWyAzcGZxIww== dependencies: axios "^1.6.7" From 070af9b0ca8530a08b2c216079c5285629e61251 Mon Sep 17 00:00:00 2001 From: Jaden Date: Tue, 18 Jun 2024 09:59:48 -0400 Subject: [PATCH 65/67] feat: adding b3 testnet --- package.json | 2 +- public/icons/b3-testnet-icon-dark.svg | 10 ++++++++++ public/icons/b3-testnet-icon-light.svg | 10 ++++++++++ utils/chains.ts | 13 +++++++++++++ utils/paymentTokens.ts | 11 +++++++++++ utils/wrappedContracts.ts | 1 + yarn.lock | 18 +++++++++--------- 7 files changed, 55 insertions(+), 10 deletions(-) create mode 100644 public/icons/b3-testnet-icon-dark.svg create mode 100644 public/icons/b3-testnet-icon-light.svg diff --git a/package.json b/package.json index abe16c40c..76d24b53b 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@radix-ui/react-toggle-group": "^1.0.1", "@radix-ui/react-tooltip": "1.0.6", "@rainbow-me/rainbowkit": "2.0.0", - "@reservoir0x/reservoir-kit-ui": "^2.5.18", + "@reservoir0x/reservoir-kit-ui": "^2.5.21", "@sentry/nextjs": "^7.85.0", "@tanstack/react-query": "5.20.2", "@types/uuid": "^9.0.1", diff --git a/public/icons/b3-testnet-icon-dark.svg b/public/icons/b3-testnet-icon-dark.svg new file mode 100644 index 000000000..f3ba975fb --- /dev/null +++ b/public/icons/b3-testnet-icon-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/icons/b3-testnet-icon-light.svg b/public/icons/b3-testnet-icon-light.svg new file mode 100644 index 000000000..0c250e10b --- /dev/null +++ b/public/icons/b3-testnet-icon-light.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/utils/chains.ts b/utils/chains.ts index c0b642d09..e1d2bb9a2 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -490,4 +490,17 @@ export default [ oracleBidsEnabled: true, checkPollingInterval: reservoirChains.sei.checkPollingInterval, }, + { + ...customChains.b3Testnet, + name: 'B3 Testnet', + lightIconUrl: '/icons/b3-testnet-icon-light.svg', + darkIconUrl: '/icons/b3-testnet-icon-dark.svg', + reservoirBaseUrl: reservoirChains.b3Testnet.baseApiUrl, + proxyApi: '/api/reservoir/b3Testnet', + routePrefix: 'b3Testnet', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'ethereum', + oracleBidsEnabled: true, + checkPollingInterval: reservoirChains.sei.checkPollingInterval, + }, ] as ReservoirChain[] diff --git a/utils/paymentTokens.ts b/utils/paymentTokens.ts index 3e10a2e4f..b80c56f58 100644 --- a/utils/paymentTokens.ts +++ b/utils/paymentTokens.ts @@ -699,4 +699,15 @@ export const chainPaymentTokensMap = { decimals: 18, }, ], + + // b3 testnet + 1993: [ + { + chainId: 1993, + address: zeroAddress, + symbol: 'ETH', + name: 'Ether', + decimals: 18, + }, + ], } as Record diff --git a/utils/wrappedContracts.ts b/utils/wrappedContracts.ts index e2150a080..c78f1fc5d 100644 --- a/utils/wrappedContracts.ts +++ b/utils/wrappedContracts.ts @@ -25,6 +25,7 @@ const wrappedContracts: Record = { 7560: '0x4200000000000000000000000000000000000006', // cyber 200901: '0xff204e2681a6fa0e2c3fade68a1b28fb90e4fc5f', // bitlayer 1329: '0xE30feDd158A2e3b13e9badaeABaFc5516e95e8C7', // sei + 1993: '0x48a9b22b80f566e88f0f1dcc90ea15a8a3bae8a4', // b3 testnet } export default wrappedContracts diff --git a/yarn.lock b/yarn.lock index f785863e8..60c8db6ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,10 +1895,10 @@ dependencies: merge-options "^3.0.4" -"@reservoir0x/reservoir-kit-ui@^2.5.18": - version "2.5.18" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.18.tgz#bbf22b1f76822180cb4c6ab8eb05c7b73b61c90c" - integrity sha512-Zp5u396m3rJjXe5gddxYXx/jPJRTq1pWQPJAGwIjexvOxXofED7vQEmea1GBOSB5YdJP471XFSMBO3QobPEFSw== +"@reservoir0x/reservoir-kit-ui@^2.5.21": + version "2.5.21" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.21.tgz#8c00d7f293a65320013ddaf5c7ade6e5e1a7d87b" + integrity sha512-YcrJvMHjI/6WpPgRJMvUfdlbmDD+xQRp/MVOsT9kQg/HF7jxy0LGiPoT7+eJDtqE4o5wyf8fR2uzyjPRC69Grw== dependencies: "@fortawesome/fontawesome-svg-core" "^6.1.1" "@fortawesome/free-solid-svg-icons" "^6.1.1" @@ -1914,7 +1914,7 @@ "@radix-ui/react-toggle-group" "1.0.4" "@radix-ui/react-tooltip" "1.0.6" "@react-hookz/web" "^19.2.0" - "@reservoir0x/reservoir-sdk" "2.2.8" + "@reservoir0x/reservoir-sdk" "2.2.11" "@stitches/react" "1.3.1-1" dayjs "^1.11.4" flatpickr "^4.6.13" @@ -1922,10 +1922,10 @@ react-flatpickr "^3.10.13" swr "2.0.1" -"@reservoir0x/reservoir-sdk@2.2.8": - version "2.2.8" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.8.tgz#54cd5c370c4dbd1335c7f6f50b234f88e2847be8" - integrity sha512-8Gjae9cr20VJbNGoRi/nx5JwrR/iGRMtt9ElU8LyDxsyQ1m7HtxMOfdaa81OmZbUA5w8jEGWN5YpH9fLBYfDjg== +"@reservoir0x/reservoir-sdk@2.2.11": + version "2.2.11" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.11.tgz#03998a0f89e8252aa2100dccc6ed989dbf086bb3" + integrity sha512-/7Oh74vZVXxQQ9Y+nH9Y3BZhWL+oMbPGr2XzP4RyD8K4EUDX73xMCYjk2sC8DnxN+wjkaaKRLlAZIoSeBy8v+g== dependencies: axios "^1.6.7" From f4cef322fceca1ef294e4120d1c97d662be48cd2 Mon Sep 17 00:00:00 2001 From: Jaden Date: Tue, 18 Jun 2024 15:08:45 -0400 Subject: [PATCH 66/67] feat: adding flow previewnet, fixing b3 icons --- package.json | 2 +- public/icons/b3-testnet-icon-dark.svg | 15 ++++++++++----- public/icons/b3-testnet-icon-light.svg | 15 ++++++++++----- public/icons/flow-previewnet-icon-dark.svg | 11 +++++++++++ public/icons/flow-previewnet-icon-light.svg | 14 ++++++++++++++ utils/chains.ts | 15 ++++++++++++++- utils/paymentTokens.ts | 11 +++++++++++ utils/wrappedContracts.ts | 1 + yarn.lock | 18 +++++++++--------- 9 files changed, 81 insertions(+), 21 deletions(-) create mode 100644 public/icons/flow-previewnet-icon-dark.svg create mode 100644 public/icons/flow-previewnet-icon-light.svg diff --git a/package.json b/package.json index 76d24b53b..c90967876 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@radix-ui/react-toggle-group": "^1.0.1", "@radix-ui/react-tooltip": "1.0.6", "@rainbow-me/rainbowkit": "2.0.0", - "@reservoir0x/reservoir-kit-ui": "^2.5.21", + "@reservoir0x/reservoir-kit-ui": "^2.5.22", "@sentry/nextjs": "^7.85.0", "@tanstack/react-query": "5.20.2", "@types/uuid": "^9.0.1", diff --git a/public/icons/b3-testnet-icon-dark.svg b/public/icons/b3-testnet-icon-dark.svg index f3ba975fb..1da010980 100644 --- a/public/icons/b3-testnet-icon-dark.svg +++ b/public/icons/b3-testnet-icon-dark.svg @@ -1,10 +1,15 @@ - - - + + + + + - - + + + + + diff --git a/public/icons/b3-testnet-icon-light.svg b/public/icons/b3-testnet-icon-light.svg index 0c250e10b..8b7ebf8ff 100644 --- a/public/icons/b3-testnet-icon-light.svg +++ b/public/icons/b3-testnet-icon-light.svg @@ -1,10 +1,15 @@ - - - + + + + + - - + + + + + diff --git a/public/icons/flow-previewnet-icon-dark.svg b/public/icons/flow-previewnet-icon-dark.svg new file mode 100644 index 000000000..6c769f804 --- /dev/null +++ b/public/icons/flow-previewnet-icon-dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/icons/flow-previewnet-icon-light.svg b/public/icons/flow-previewnet-icon-light.svg new file mode 100644 index 000000000..532395f6f --- /dev/null +++ b/public/icons/flow-previewnet-icon-light.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/utils/chains.ts b/utils/chains.ts index e1d2bb9a2..043b6e2f5 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -501,6 +501,19 @@ export default [ apiKey: process.env.RESERVOIR_API_KEY, coingeckoId: 'ethereum', oracleBidsEnabled: true, - checkPollingInterval: reservoirChains.sei.checkPollingInterval, + checkPollingInterval: reservoirChains.b3Testnet.checkPollingInterval, + }, + { + ...customChains.flowPreviewnet, + name: 'Flow Previewnet', + lightIconUrl: '/icons/flow-previewnet-icon-light.svg', + darkIconUrl: '/icons/flow-previewnet-icon-dark.svg', + reservoirBaseUrl: reservoirChains.flowPreviewnet.baseApiUrl, + proxyApi: '/api/reservoir/flowPreviewnet', + routePrefix: 'flowPreviewnet', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'flow', + oracleBidsEnabled: true, + checkPollingInterval: reservoirChains.flowPreviewnet.checkPollingInterval, }, ] as ReservoirChain[] diff --git a/utils/paymentTokens.ts b/utils/paymentTokens.ts index b80c56f58..a94273008 100644 --- a/utils/paymentTokens.ts +++ b/utils/paymentTokens.ts @@ -710,4 +710,15 @@ export const chainPaymentTokensMap = { decimals: 18, }, ], + + // flow previewnet + 646: [ + { + chainId: 646, + address: zeroAddress, + symbol: 'FLOW', + name: 'Flow', + decimals: 18, + }, + ], } as Record diff --git a/utils/wrappedContracts.ts b/utils/wrappedContracts.ts index c78f1fc5d..7f471f41b 100644 --- a/utils/wrappedContracts.ts +++ b/utils/wrappedContracts.ts @@ -26,6 +26,7 @@ const wrappedContracts: Record = { 200901: '0xff204e2681a6fa0e2c3fade68a1b28fb90e4fc5f', // bitlayer 1329: '0xE30feDd158A2e3b13e9badaeABaFc5516e95e8C7', // sei 1993: '0x48a9b22b80f566e88f0f1dcc90ea15a8a3bae8a4', // b3 testnet + 646: '0x48a9b22b80f566e88f0f1dcc90ea15a8a3bae8a4', // flow previewnet } export default wrappedContracts diff --git a/yarn.lock b/yarn.lock index 60c8db6ee..a7c8ac024 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,10 +1895,10 @@ dependencies: merge-options "^3.0.4" -"@reservoir0x/reservoir-kit-ui@^2.5.21": - version "2.5.21" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.21.tgz#8c00d7f293a65320013ddaf5c7ade6e5e1a7d87b" - integrity sha512-YcrJvMHjI/6WpPgRJMvUfdlbmDD+xQRp/MVOsT9kQg/HF7jxy0LGiPoT7+eJDtqE4o5wyf8fR2uzyjPRC69Grw== +"@reservoir0x/reservoir-kit-ui@^2.5.22": + version "2.5.22" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.5.22.tgz#cb7b4877066187b91a3f7293bf9d02bd4dcbfc89" + integrity sha512-977RbjYUUphbgH279U8qi8iH7N0o61KS10g3JGET0KPnXe2EwbXFYkfvbB6c03wyl/ObNgr2CG0CtCG9ATq2uA== dependencies: "@fortawesome/fontawesome-svg-core" "^6.1.1" "@fortawesome/free-solid-svg-icons" "^6.1.1" @@ -1914,7 +1914,7 @@ "@radix-ui/react-toggle-group" "1.0.4" "@radix-ui/react-tooltip" "1.0.6" "@react-hookz/web" "^19.2.0" - "@reservoir0x/reservoir-sdk" "2.2.11" + "@reservoir0x/reservoir-sdk" "2.2.12" "@stitches/react" "1.3.1-1" dayjs "^1.11.4" flatpickr "^4.6.13" @@ -1922,10 +1922,10 @@ react-flatpickr "^3.10.13" swr "2.0.1" -"@reservoir0x/reservoir-sdk@2.2.11": - version "2.2.11" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.11.tgz#03998a0f89e8252aa2100dccc6ed989dbf086bb3" - integrity sha512-/7Oh74vZVXxQQ9Y+nH9Y3BZhWL+oMbPGr2XzP4RyD8K4EUDX73xMCYjk2sC8DnxN+wjkaaKRLlAZIoSeBy8v+g== +"@reservoir0x/reservoir-sdk@2.2.12": + version "2.2.12" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.2.12.tgz#9a376f3aa681f3a86a9996b8d0591cc8fea7a0c9" + integrity sha512-lnajlPhApyc2CET32K/KHgUZhXTA+/1Eq56Evg4VFCWUhChMOdCY3BEnkDNJg07l7azFGepttaa844Ah8JY2Mg== dependencies: axios "^1.6.7" From 4da7edec3a7e8620407183cd959989d388531c19 Mon Sep 17 00:00:00 2001 From: Jaden Date: Tue, 23 Jul 2024 18:00:06 -0400 Subject: [PATCH 67/67] feat: adding boss --- package.json | 2 +- utils/chains.ts | 13 +++++++++++++ yarn.lock | 18 +++++++++--------- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index a7f0d43c5..37bfd5a8d 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@radix-ui/react-toggle-group": "^1.0.1", "@radix-ui/react-tooltip": "1.0.6", "@rainbow-me/rainbowkit": "2.1.2", - "@reservoir0x/reservoir-kit-ui": "2.7.5", + "@reservoir0x/reservoir-kit-ui": "^2.7.6", "@sentry/nextjs": "^7.85.0", "@tanstack/react-query": "5.20.2", "@types/uuid": "^9.0.1", diff --git a/utils/chains.ts b/utils/chains.ts index 6bd32157a..533beed0d 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -486,4 +486,17 @@ export default [ oracleBidsEnabled: true, checkPollingInterval: reservoirChains.sei.checkPollingInterval, }, + { + ...customChains.boss, + name: 'Boss', + lightIconUrl: '/icons/apex-pop-icon-light.svg', + darkIconUrl: '/icons/apex-pop-icon-dark.svg', + reservoirBaseUrl: reservoirChains.boss.baseApiUrl, + proxyApi: '/api/reservoir/boss', + routePrefix: 'boss', + apiKey: process.env.RESERVOIR_API_KEY, + coingeckoId: 'ethereum', + oracleBidsEnabled: true, + checkPollingInterval: reservoirChains.boss.checkPollingInterval, + }, ] as ReservoirChain[] diff --git a/yarn.lock b/yarn.lock index 439a10145..b595036ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1753,10 +1753,10 @@ dependencies: "@react-hookz/deep-equal" "^1.0.3" -"@reservoir0x/reservoir-kit-ui@2.7.5": - version "2.7.5" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.7.5.tgz#835a686b6cd4e47db51b49a0096b6280af4bbf20" - integrity sha512-Ipbi7SMAOebj1ZL3A8PGF4dUl/kwfjqKUb7GrWC2Y4VScszqmIUfLjuJuAcjVZBx/Oe6ThcK50keijQMSSH+nw== +"@reservoir0x/reservoir-kit-ui@^2.7.6": + version "2.7.6" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-kit-ui/-/reservoir-kit-ui-2.7.6.tgz#3ba605655aa9d8ddbfaf2378a656e78d70159685" + integrity sha512-0DiqLDly60qlA1ohVCMLWYIx3jCYiDT9tUmVR4eyYqSrjfUDXPjAu2/tRoEw3IcazItb8V+LZdDw55eo3RCrTA== dependencies: "@fortawesome/fontawesome-svg-core" "^6.1.1" "@fortawesome/free-solid-svg-icons" "^6.1.1" @@ -1772,7 +1772,7 @@ "@radix-ui/react-toggle-group" "1.0.4" "@radix-ui/react-tooltip" "1.0.6" "@react-hookz/web" "^19.2.0" - "@reservoir0x/reservoir-sdk" "2.4.4" + "@reservoir0x/reservoir-sdk" "2.4.5" "@stitches/react" "1.3.1-1" dayjs "^1.11.4" flatpickr "^4.6.13" @@ -1780,10 +1780,10 @@ react-flatpickr "^3.10.13" swr "2.0.1" -"@reservoir0x/reservoir-sdk@2.4.4": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.4.4.tgz#ced096c1180e9cb83c2f39f4d11dd84ce6097a9a" - integrity sha512-9OJE/Ciynd5EcicK2DIS1nYAMYjHHIYOXHMl3AUFonjvjaJwOB+UH0h5izxCKgj3o+d57yx6V5hTBUtrHN5waw== +"@reservoir0x/reservoir-sdk@2.4.5": + version "2.4.5" + resolved "https://registry.yarnpkg.com/@reservoir0x/reservoir-sdk/-/reservoir-sdk-2.4.5.tgz#6cf1c6c08fe418ae05ff7104ef9c6f27229f7552" + integrity sha512-26doyAOIzYtSmttup17qo1NQM19ZLPwkiqAVyoRACRJXAyktOFJwCnSqSx2gGl9QbMhkVUJ9Da3SQ397d3dI+g== dependencies: axios "^1.6.7"