-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Safe subgraph queries #2746
Closed
Closed
Safe subgraph queries #2746
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
7ad668c
Merge pull request #2745 from decentdao/release/v0.7.2
adamgall 67c8655
Create SafeQueries constants for queries and return types
adamgall a23c6e9
Beginnings of implementation of Subgraph Query to determine whether o…
adamgall 2612a16
Make the network queries for each network when searching for a DAO ha…
adamgall 03d6d07
Restore safe-client fallback
DarksightKellar File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
import { Address, Hex } from 'viem'; | ||
|
||
// Define the base DAO structure that can be nested | ||
interface Safe { | ||
id: Address; | ||
created: string; | ||
creator: Address; | ||
transactionHash: Hex; | ||
factoryAddress: Address; | ||
singleton: Address; | ||
setupData: Hex; | ||
} | ||
|
||
// Define the top-level DAO response structure | ||
export interface SafeQueryResponse { | ||
safes: Safe[]; | ||
} | ||
|
||
export const SafeQuery = `query SafeQuery($safeAddress: Bytes) { | ||
safes(where: { id: $safeAddress }) { | ||
id | ||
created | ||
creator | ||
transactionHash | ||
factoryAddress | ||
singleton | ||
setupData | ||
} | ||
}`; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,6 +21,8 @@ import { | |
} from 'viem'; | ||
import GnosisSafeL2Abi from '../../../assets/abi/GnosisSafeL2'; | ||
import { SENTINEL_ADDRESS } from '../../../constants/common'; | ||
import { createDecentSubgraphClient } from '../../../graphql'; | ||
import { SafeQuery } from '../../../graphql/SafeQueries'; | ||
import { SafeWithNextNonce } from '../../../types'; | ||
import { NetworkConfig } from '../../../types/network'; | ||
import { useNetworkConfigStore } from '../../NetworkConfig/useNetworkConfigStore'; | ||
|
@@ -163,9 +165,16 @@ class EnhancedSafeApiKit extends SafeApiKit { | |
} | ||
|
||
try { | ||
// TODO ENG-291 | ||
// add another layer of onchain fallback here | ||
// use subgraph to get this data | ||
const client = createDecentSubgraphClient(this.networkConfig); | ||
const queryResult = await client.query<any>(SafeQuery, { safeAddress }); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should use the actual type from SafeQueries, not "any" |
||
|
||
const safeCreationInfo = queryResult.data?.safes[0]; | ||
if (safeCreationInfo) { | ||
// setupData is 0x from the subgraph, so it's good that it's the final fallback. | ||
// Not that it's ever used anywhere currently anyway. | ||
return safeCreationInfo; | ||
} | ||
console.log('Safe creation info not found'); | ||
} catch (error) { | ||
console.error('Error fetching getSafeCreationInfo from subgraph:', error); | ||
} | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is here to make the DAO Searching do all network requests in parallel, not in sequence. Faster searching.