Skip to content

Commit

Permalink
Merge branch 'develop' of github.com:curvefi/curve-frontend into llam…
Browse files Browse the repository at this point in the history
…a-lend-queries
  • Loading branch information
DanielSchiavini committed Oct 14, 2024
2 parents c73360c + 2296ab5 commit a846146
Show file tree
Hide file tree
Showing 20 changed files with 310 additions and 99 deletions.
30 changes: 28 additions & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,33 @@ module.exports = {
extends: ['custom'],
settings: {
next: {
rootDir: ['apps/*/', 'packages/ui/*/', 'packages/onboard-helpers/*/'],
},
rootDir: ['apps/*/', 'packages/ui/*/', 'packages/onboard-helpers/*/']
}
},
overrides: [
// enforce Feature Sliced rules for loan app (except 'pages' folder) and curve-lib
{
files: [
'apps/loan/src/{app,widgets,features,entities,shared}/**/*.{ts,tsx}',
'packages/curve-lib/src/shared/**/*.ts'
],
rules: {
'import/order': 'error', // feature-sliced/import-order
'import/no-internal-modules': 'error', // feature-sliced/public-api
'boundaries/element-types': 'error' // feature-sliced/layers-slices
}
},
// warn about Feature Sliced rules for main and lend apps, plus loan 'pages' folder
{
files: [
'apps/{main,lend}/src/{app,pages,widgets,features,entities,shared}/**/*.{ts,tsx}',
'apps/loan/src/pages/**/*.{ts,tsx}'
],
rules: {
'import/order': 'warn', // feature-sliced/import-order
'import/no-internal-modules': 'warn', // feature-sliced/public-api
'boundaries/element-types': 'warn' // feature-sliced/layers-slices
}
}
]
}
4 changes: 0 additions & 4 deletions apps/lend/.eslintrc.js

This file was deleted.

4 changes: 0 additions & 4 deletions apps/loan/.eslintrc.js

This file was deleted.

4 changes: 0 additions & 4 deletions apps/main/.eslintrc.js

This file was deleted.

5 changes: 1 addition & 4 deletions apps/main/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,11 @@
"analyze": "ANALYZE=true next build"
},
"dependencies": {
"@curvefi/api": "^2.63.5",
"@curvefi/api": "^2.63.10",
"@hookform/error-message": "^2.0.1",
"@hookform/resolvers": "^3.9.0",
"@lingui/react": "^4.6.0",
"@supercharge/promise-pool": "^2.3.2",
"@tanstack/query-sync-storage-persister": "^5.53.1",
"@tanstack/react-query": "^5.53.1",
"@tanstack/react-query-persist-client": "^5.53.1",
"bignumber.js": "^9.0.1",
"cross-fetch": "^3.1.5",
"curve-lib": "*",
Expand Down
4 changes: 2 additions & 2 deletions apps/main/src/components/PageCreatePool/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ export const POOL_PRESETS: PRESETS = {
description: t`Suitable for stablecoins that are fiat-redeemable`,
defaultParams: {
...fillerParams,
stableSwapFee: '0.04',
stableA: '200',
stableSwapFee: '0.01',
stableA: '1000',
maExpTime: '600',
offpegFeeMultiplier: '2',
},
Expand Down
4 changes: 4 additions & 0 deletions packages/curve-lib/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
"lint": "eslint \"**/*.ts*\""
},
"dependencies": {
"@tanstack/query-sync-storage-persister": "^5.59.0",
"@tanstack/react-query": "^5.59.0",
"@tanstack/react-query-devtools": "^5.59.0",
"@tanstack/react-query-persist-client": "^5.59.0",
"ethers": "^6.11.0",
"react": "^18.2.0"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/curve-lib/src/shared/api/cache.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { type Mutation, MutationCache, QueryCache } from '@tanstack/react-query'
import { logError, logMutation, logSuccess } from '@/shared/lib/logging'
import { MutationCache, QueryCache, type Mutation } from '@tanstack/react-query'

export const queryCache = new QueryCache({
onError: (error: Error, query) => {
Expand Down
2 changes: 1 addition & 1 deletion packages/curve-lib/src/shared/api/query-client.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { mutationCache, queryCache } from './cache'
import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister'
import { QueryClient } from '@tanstack/react-query'
import { mutationCache, queryCache } from './cache'

export const queryClient = new QueryClient({
defaultOptions: {},
Expand Down
2 changes: 1 addition & 1 deletion packages/curve-lib/src/shared/lib/queries/combine.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { useQueries, UseQueryResult } from '@tanstack/react-query'
import { useCallback } from 'react'
import {
CombinedQueriesResult,
CombinedQueryMappingResult,
ExtractDataType,
QueryOptionsArray,
QueryResultsArray,
} from './types'
import { useCallback } from 'react'

/** Combines the metadata of multiple queries into a single object. */
const combineQueriesMeta = <T extends QueryOptionsArray>(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { isAddress, zeroAddress } from 'viem'
import isDecimal from 'validator/lib/isDecimal'
import { isAddress, zeroAddress } from 'viem'

export const extendEnforce = (enforce: typeof import('vest').enforce) =>
enforce.extend({
Expand Down
2 changes: 1 addition & 1 deletion packages/curve-lib/src/shared/lib/validation/lib.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { type ValidatedData } from './types'
import { create, enforce, only, type Suite } from 'vest'
import { extendEnforce } from './enforce-extension'
import { type ValidatedData } from './types'

extendEnforce(enforce)

Expand Down
5 changes: 4 additions & 1 deletion packages/eslint-config-custom/index.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
module.exports = {
extends: ['next', 'turbo', 'prettier'],
extends: ['next', 'turbo', 'prettier', "@feature-sliced"],
plugins: ['@tanstack/query'],
rules: {
'@next/next/no-img-element': 'off',
'@next/next/no-html-link-for-pages': 'off',
'react/jsx-key': 'off',
'import/order': 'off', // feature-sliced/import-order
'import/no-internal-modules': 'off', // feature-sliced/public-api
'boundaries/element-types': 'off' // feature-sliced/layers-slices
},
parser: '@typescript-eslint/parser',
settings: {
Expand Down
5 changes: 4 additions & 1 deletion packages/eslint-config-custom/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,17 @@
"license": "MIT",
"private": true,
"devDependencies": {
"@tanstack/eslint-plugin-query": "^5.56.1",
"@feature-sliced/eslint-config": "^0.1.1",
"@tanstack/eslint-plugin-query": "^5.59.1",
"@typescript-eslint/eslint-plugin": "^8.6.0",
"@typescript-eslint/parser": "^8.6.0",
"eslint": "^8.57.1",
"eslint-config-next": "^14.2.11",
"eslint-config-prettier": "^9.1.0",
"eslint-config-turbo": "^2.1.2",
"eslint-import-resolver-typescript": "^3.6.3",
"eslint-plugin-boundaries": "^4.2.2",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-react": "7.36.1",
"prettier-eslint": "^16.3.0"
}
Expand Down
3 changes: 3 additions & 0 deletions packages/external-rewards/src/campaign-list.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,8 @@
},
{
"campaign": "SolvProtocol.json"
},
{
"campaign": "Hinkal.json"
}
]
21 changes: 21 additions & 0 deletions packages/external-rewards/src/campaigns/Hinkal.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"campaignName": "",
"platform": "Hinkal",
"description": "Points for providing liquidity.",
"platformImageId": "hinkal.png",
"dashboardLink": "https://app.hinkal.pro/anonymity-staking/",
"pools": [
{
"id": "null",
"action": "lp",
"description": "null",
"campaignStart": "0",
"campaignEnd": "1770000000",
"address": "0x1f7e9321ce32af1f9ea1185fd10d31fea31ffd95",
"network": "ethereum",
"multiplier": "2",
"tags": ["points"],
"lock": "false"
}
]
}
48 changes: 48 additions & 0 deletions packages/external-rewards/src/campaigns/YieldNest.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,54 @@
"multiplier": "2.5",
"tags": ["points"],
"lock": "false"
},
{
"id": "null",
"action": "borrow",
"description": "null",
"campaignStart": "1728993600",
"campaignEnd": "1730203199",
"address": "0x143985860efaeacb92db23e4b0c4d66be51b08d2",
"network": "ethereum",
"multiplier": "6",
"tags": ["points"],
"lock": "false"
},
{
"id": "null",
"action": "borrow",
"description": "null",
"campaignStart": "1730203200",
"campaignEnd": "1770000000",
"address": "0x143985860efaeacb92db23e4b0c4d66be51b08d2",
"network": "ethereum",
"multiplier": "2.5",
"tags": ["points"],
"lock": "false"
},
{
"id": "null",
"action": "supply",
"description": "null",
"campaignStart": "1728993600",
"campaignEnd": "1730203199",
"address": "0x52036c9046247c3358c987a2389ffde6ef8564c9",
"network": "ethereum",
"multiplier": "6",
"tags": ["points"],
"lock": "false"
},
{
"id": "null",
"action": "supply",
"description": "null",
"campaignStart": "1730203200",
"campaignEnd": "1770000000",
"address": "0x52036c9046247c3358c987a2389ffde6ef8564c9",
"network": "ethereum",
"multiplier": "2.5",
"tags": ["points"],
"lock": "false"
}
]
}
14 changes: 8 additions & 6 deletions packages/external-rewards/src/campaigns/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ import Symbiotic from './Symbiotic.json'
import Usual from './Usual.json'
import YieldNest from './YieldNest.json'
import Fraxtal from './Fraxtal.json'
import Swell from './Swell.json';
import Resolv from './Resolv.json';
import Lombard from './Lombard.json';
import TurtleSeeds from './TurtleSeeds.json';
import SolvProtocol from './SolvProtocol.json';
import Swell from './Swell.json'
import Resolv from './Resolv.json'
import Lombard from './Lombard.json'
import TurtleSeeds from './TurtleSeeds.json'
import SolvProtocol from './SolvProtocol.json'
import Hinkal from './Hinkal.json'

export {
DLCLink,
Expand All @@ -33,5 +34,6 @@ export {
Resolv,
Lombard,
TurtleSeeds,
SolvProtocol
SolvProtocol,
Hinkal
}
8 changes: 5 additions & 3 deletions packages/ui/src/QueryProvider/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { type QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
import { type Persister, PersistQueryClientProvider } from '@tanstack/react-query-persist-client'
import type { ReactNode } from 'react'
import React, { ReactNode } from 'react'

type QueryProviderWrapperProps = {
children: ReactNode
Expand All @@ -9,12 +10,13 @@ type QueryProviderWrapperProps = {
}

export function QueryProvider({ children, persister, queryClient }: QueryProviderWrapperProps) {
const content = (<>{children}<ReactQueryDevtools /></>)
if (persister) {
return (
<PersistQueryClientProvider client={queryClient} persistOptions={{ persister }}>
{children}
{content}
</PersistQueryClientProvider>
)
}
return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
return <QueryClientProvider client={queryClient}>{content}</QueryClientProvider>
}
Loading

0 comments on commit a846146

Please sign in to comment.