Skip to content

Commit

Permalink
release: 2024-08-11 (#4426)
Browse files Browse the repository at this point in the history
  • Loading branch information
johnnyd-eth committed Aug 11, 2024
1 parent 83cd8ae commit c40a97c
Show file tree
Hide file tree
Showing 8 changed files with 207 additions and 47 deletions.
30 changes: 18 additions & 12 deletions src/components/VolumeChart/hooks/useProjectTimeline.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import { useQuery } from '@tanstack/react-query'
import { PV_V4 } from 'constants/pv'
import { readProvider } from 'constants/readProvider'
import EthDater from 'ethereum-block-by-date'
import { useProjectTlQuery } from 'generated/graphql'
import { ProjectTlQuery, useProjectTlQuery } from 'generated/graphql'
import { client } from 'lib/apollo/client'
import { PV } from 'models/pv'
import { ProjectTlDocument } from 'packages/v4/graphql/client/graphql'
import { useSubgraphQuery } from 'packages/v4/graphql/useSubgraphQuery'
import { useMemo } from 'react'
import { wadToFloat } from 'utils/format/formatNumber'
import { getSubgraphIdForProject } from 'utils/graph'
Expand Down Expand Up @@ -73,23 +76,26 @@ export function useProjectTimeline({
id: blocks ? getSubgraphIdForProject(pv, projectId) : '',
...blocks,
},
skip: pv === PV_V4
})

const { data: v4QueryResult } = useSubgraphQuery({
document: ProjectTlDocument,
variables: {
id: blocks ? projectId.toString() : '',
...blocks,
},
enabled: pv === PV_V4
})
// TODO: const { data: v4QueryResult } = useSubgraphQuery(ProjectTlDocument, {
// where: {
// projectId,
// },
// })

const points = useMemo(() => {
// TODO: if (!(v1v2v3QueryResult || v4QueryResult) || !timestamps) return
if (!v1v2v3QueryResult || !timestamps) return
// TODO: const queryResult = pv === PV_V4 ? v4QueryResult : v1v2v3QueryResult
const queryResult = v1v2v3QueryResult
const queryResult = pv === PV_V4 ? v4QueryResult : v1v2v3QueryResult
if (!queryResult || !timestamps) return

const points: ProjectTimelinePoint[] = []

for (let i = 0; i < COUNT; i++) {
const point = queryResult[`p${i}` as keyof typeof queryResult]
const point = (queryResult as ProjectTlQuery)[`p${i}` as keyof typeof queryResult]

if (!point) continue

Expand All @@ -102,7 +108,7 @@ export function useProjectTimeline({
}

return points
}, [timestamps, v1v2v3QueryResult])
}, [timestamps, v1v2v3QueryResult, v4QueryResult, pv])

return {
points,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,12 @@ export function V2V3ProjectToolsDrawer({
open?: boolean
onClose?: VoidFunction
}) {
const { projectId } = useContext(ProjectMetadataContext)
const { projectId, projectMetadata } = useContext(ProjectMetadataContext)
const { payoutSplits, reservedTokensSplits, handle } =
useContext(V2V3ProjectContext)

const hasOFAC = projectMetadata?.projectRequiredOFACCheck

const isMobile = useMobile()

return (
Expand All @@ -48,18 +50,21 @@ export function V2V3ProjectToolsDrawer({
</section>

<Divider />

{hasOFAC ? null : (
<>
<section>
<h3 className="text-primary">
<Trans>Project payer addresses</Trans>
</h3>

<section>
<h3 className="text-primary">
<Trans>Project payer addresses</Trans>
</h3>

<PaymentAddressSection
useDeployProjectPayerTx={useDeployProjectPayerTx}
/>
</section>

<Divider />
<PaymentAddressSection
useDeployProjectPayerTx={useDeployProjectPayerTx}
/>
</section>
<Divider />
</>
)}

<ExportSection
exportPayoutsButton={
Expand Down
130 changes: 130 additions & 0 deletions src/packages/v4/graphql/queries/projectTL.graphql
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
fragment ProjectTLParts on Project {
currentBalance
volume
trendingScore
}

query ProjectTL(
$id: ID!
$block0: Int
$block1: Int
$block2: Int
$block3: Int
$block4: Int
$block5: Int
$block6: Int
$block7: Int
$block8: Int
$block9: Int
$block10: Int
$block11: Int
$block12: Int
$block13: Int
$block14: Int
$block15: Int
$block16: Int
$block17: Int
$block18: Int
$block19: Int
$block20: Int
$block21: Int
$block22: Int
$block23: Int
$block24: Int
$block25: Int
$block26: Int
$block27: Int
$block28: Int
$block29: Int
) {
p0: project(id: $id, block: { number: $block0 }) {
...ProjectTLParts
}
p1: project(id: $id, block: { number: $block1 }) {
...ProjectTLParts
}
p2: project(id: $id, block: { number: $block2 }) {
...ProjectTLParts
}
p3: project(id: $id, block: { number: $block3 }) {
...ProjectTLParts
}
p4: project(id: $id, block: { number: $block4 }) {
...ProjectTLParts
}
p5: project(id: $id, block: { number: $block5 }) {
...ProjectTLParts
}
p6: project(id: $id, block: { number: $block6 }) {
...ProjectTLParts
}
p7: project(id: $id, block: { number: $block7 }) {
...ProjectTLParts
}
p8: project(id: $id, block: { number: $block8 }) {
...ProjectTLParts
}
p9: project(id: $id, block: { number: $block9 }) {
...ProjectTLParts
}
p10: project(id: $id, block: { number: $block10 }) {
...ProjectTLParts
}
p11: project(id: $id, block: { number: $block11 }) {
...ProjectTLParts
}
p12: project(id: $id, block: { number: $block12 }) {
...ProjectTLParts
}
p13: project(id: $id, block: { number: $block13 }) {
...ProjectTLParts
}
p14: project(id: $id, block: { number: $block14 }) {
...ProjectTLParts
}
p15: project(id: $id, block: { number: $block15 }) {
...ProjectTLParts
}
p16: project(id: $id, block: { number: $block16 }) {
...ProjectTLParts
}
p17: project(id: $id, block: { number: $block17 }) {
...ProjectTLParts
}
p18: project(id: $id, block: { number: $block18 }) {
...ProjectTLParts
}
p19: project(id: $id, block: { number: $block19 }) {
...ProjectTLParts
}
p20: project(id: $id, block: { number: $block20 }) {
...ProjectTLParts
}
p21: project(id: $id, block: { number: $block21 }) {
...ProjectTLParts
}
p22: project(id: $id, block: { number: $block22 }) {
...ProjectTLParts
}
p23: project(id: $id, block: { number: $block23 }) {
...ProjectTLParts
}
p24: project(id: $id, block: { number: $block24 }) {
...ProjectTLParts
}
p25: project(id: $id, block: { number: $block25 }) {
...ProjectTLParts
}
p26: project(id: $id, block: { number: $block26 }) {
...ProjectTLParts
}
p27: project(id: $id, block: { number: $block27 }) {
...ProjectTLParts
}
p28: project(id: $id, block: { number: $block28 }) {
...ProjectTLParts
}
p29: project(id: $id, block: { number: $block29 }) {
...ProjectTLParts
}
}
12 changes: 9 additions & 3 deletions src/packages/v4/graphql/useSubgraphQuery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,15 @@ BigInt.prototype.toJSON = function () {
return { $bigint: this.toString() }
}

export function useSubgraphQuery<TResult, TVariables>(
export function useSubgraphQuery<TResult, TVariables>({
document,
enabled = true,
variables
}: {
document: TypedDocumentNode<TResult, TVariables>,
...[variables]: TVariables extends Record<string, never> ? [] : [TVariables]
): UseQueryResult<TResult> {
enabled?: boolean,
variables?: TVariables
}): UseQueryResult<TResult> {
return useQuery({
// eslint-disable-next-line @typescript-eslint/no-explicit-any
queryKey: [(document.definitions[0] as any).name.value, variables],
Expand All @@ -26,5 +31,6 @@ export function useSubgraphQuery<TResult, TVariables>(
queryKey[1] ? queryKey[1] : undefined,
)
},
enabled
})
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,15 @@ export function V4ActivityList() {
const { projectId } = useJBContractContext()

// TODO: pageSize (pagination)
const { data: payEventsData, isLoading } = useSubgraphQuery(PayEventsDocument, {
orderBy: PayEvent_OrderBy.timestamp,
orderDirection: OrderDirection.desc,
where: {
projectId: Number(projectId),
},
const { data: payEventsData, isLoading } = useSubgraphQuery({
document: PayEventsDocument,
variables: {
orderBy: PayEvent_OrderBy.timestamp,
orderDirection: OrderDirection.desc,
where: {
projectId: Number(projectId),
},
}
})

const payEvents = transformPayEventsRes(payEventsData) ?? []
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,15 @@ import { V4ActivityList } from './V4ActivityList'

export function V4ActivityPanel() {
const { projectId } = useJBContractContext()
const { data } = useSubgraphQuery(ProjectsDocument, {
where: {
projectId: Number(projectId),
},
const { data } = useSubgraphQuery({
document: ProjectsDocument,
variables: {
where: {
projectId: Number(projectId),
},
}
})

const createdAt = data?.projects?.[0].createdAt

return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@ import { transformPayEventsRes } from "../utils/transformEventsData";
export const useDownloadPayments = (blockNumber: number, projectId: number) => {
const [isLoading, setIsLoading] = useState(false);

const { data: payEventsData } = useSubgraphQuery(PayEventsDocument, {
orderBy: PayEvent_OrderBy.timestamp,
orderDirection: OrderDirection.desc,
where: {
projectId: Number(projectId),
},
const { data: payEventsData } = useSubgraphQuery({
document: PayEventsDocument,
variables: {
orderBy: PayEvent_OrderBy.timestamp,
orderDirection: OrderDirection.desc,
where: {
projectId: Number(projectId),
},
}
});

const downloadPayments = useCallback(async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,13 @@ export const useV4ProjectHeader = (): ProjectHeaderData => {

const projectIdNum = parseInt(projectId.toString())

const { data } = useSubgraphQuery(ProjectsDocument, {
where: {
projectId: projectIdNum,
},
const { data } = useSubgraphQuery({
document: ProjectsDocument,
variables: {
where: {
projectId: projectIdNum,
},
}
})

const projectStatsData = data?.projects?.[0]
Expand Down

0 comments on commit c40a97c

Please sign in to comment.