File tree Expand file tree Collapse file tree 4 files changed +43
-2
lines changed Expand file tree Collapse file tree 4 files changed +43
-2
lines changed Original file line number Diff line number Diff line change 75
75
"dependencies" : {
76
76
"@cyntler/react-doc-viewer" : " ^1.16.3" ,
77
77
"@kleros/kleros-sdk" : " workspace:^" ,
78
+ "@kleros/kleros-v2-contracts" : " workspace:^" ,
78
79
"@kleros/ui-components-library" : " ^2.15.0" ,
79
80
"@lifi/wallet-management" : " ^3.0.3" ,
80
81
"@lifi/widget" : " ^3.2.0" ,
Original file line number Diff line number Diff line change @@ -28,6 +28,7 @@ export const ETH_ADDRESS_REGEX = /^0x[a-fA-F0-9]{40}$/;
28
28
export const ETH_SIGNATURE_REGEX = / ^ 0 x [ a - f A - F 0 - 9 ] { 130 } $ / ;
29
29
30
30
export const isProductionDeployment = ( ) => import . meta. env . REACT_APP_DEPLOYMENT === "mainnet" ;
31
+ export const isTestnetDeployment = ( ) => import . meta. env . REACT_APP_DEPLOYMENT === "testnet" ;
31
32
32
33
export const isKlerosUniversity = ( ) => getArbitratorType ( ) === ArbitratorTypes . university ;
33
34
export const isKlerosNeo = ( ) => getArbitratorType ( ) === ArbitratorTypes . neo ;
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ import { isUndefined } from "utils/index";
5
5
6
6
import { graphql } from "src/graphql" ;
7
7
import { HomePageBlockQuery } from "src/graphql/graphql" ;
8
+ import useGenesisBlock from "../useGenesisBlock" ;
8
9
export type { HomePageBlockQuery } ;
9
10
10
11
const homePageBlockQuery = graphql ( `
@@ -58,18 +59,20 @@ export type HomePageBlockStats = {
58
59
} ;
59
60
60
61
export const useHomePageBlockQuery = ( blockNumber : number | undefined , allTime : boolean ) => {
61
- const isEnabled = ! isUndefined ( blockNumber ) || allTime ;
62
+ const genesisBlock = useGenesisBlock ( ) ;
63
+ const isEnabled = ! isUndefined ( blockNumber ) || allTime || ! isUndefined ( genesisBlock ) ;
62
64
const { graphqlBatcher } = useGraphqlBatcher ( ) ;
63
65
64
66
return useQuery < HomePageBlockStats > ( {
65
67
queryKey : [ `homePageBlockQuery${ blockNumber } -${ allTime } ` ] ,
66
68
enabled : isEnabled ,
67
69
staleTime : Infinity ,
68
70
queryFn : async ( ) => {
71
+ const targetBlock = Math . max ( blockNumber ! , genesisBlock ! ) ;
69
72
const data = await graphqlBatcher . fetch ( {
70
73
id : crypto . randomUUID ( ) ,
71
74
document : homePageBlockQuery ,
72
- variables : { blockNumber } ,
75
+ variables : { blockNumber : targetBlock } ,
73
76
} ) ;
74
77
75
78
return processData ( data , allTime ) ;
Original file line number Diff line number Diff line change
1
+ import { useEffect , useState } from "react" ;
2
+ import { isKlerosNeo , isKlerosUniversity , isTestnetDeployment } from "~src/consts" ;
3
+
4
+ /**
5
+ * @returns genesis block for kleros core contract
6
+ */
7
+ const useGenesisBlock = ( ) => {
8
+ const [ genesisBlock , setGenesisBlock ] = useState < number > ( ) ;
9
+ useEffect ( ( ) => {
10
+ if ( isKlerosUniversity ( ) ) {
11
+ import ( "@kleros/kleros-v2-contracts/deployments/arbitrumSepoliaDevnet/KlerosCoreUniversity.json" ) . then ( ( json ) =>
12
+ setGenesisBlock ( json . receipt . blockNumber )
13
+ ) ;
14
+ }
15
+
16
+ if ( isKlerosNeo ( ) ) {
17
+ import ( "@kleros/kleros-v2-contracts/deployments/arbitrum/KlerosCoreNeo.json" ) . then ( ( json ) =>
18
+ setGenesisBlock ( json . receipt . blockNumber )
19
+ ) ;
20
+ }
21
+
22
+ if ( isTestnetDeployment ( ) ) {
23
+ import ( "@kleros/kleros-v2-contracts/deployments/arbitrumSepolia/KlerosCore.json" ) . then ( ( json ) =>
24
+ setGenesisBlock ( json . receipt . blockNumber )
25
+ ) ;
26
+ } else {
27
+ import ( "@kleros/kleros-v2-contracts/deployments/arbitrumSepoliaDevnet/KlerosCore.json" ) . then ( ( json ) =>
28
+ setGenesisBlock ( json . receipt . blockNumber )
29
+ ) ;
30
+ }
31
+ } , [ ] ) ;
32
+
33
+ return genesisBlock ;
34
+ } ;
35
+
36
+ export default useGenesisBlock ;
You can’t perform that action at this time.
0 commit comments