Skip to content

Instantly share code, notes, and snippets.

@uratmangun
Last active March 9, 2024 12:04
Show Gist options
  • Save uratmangun/c815088e3eaa628e17bee7c49ad1c86d to your computer and use it in GitHub Desktop.
Save uratmangun/c815088e3eaa628e17bee7c49ad1c86d to your computer and use it in GitHub Desktop.
the code
import Groq from "groq-sdk";
const groq = new Groq({
apiKey: ""
});
export async function generate(text:string) {
const completion = await groq.chat.completions.create({
messages: [
{
role: "system",
content: "you're summary generator create a summary of this markdown in a tweet style"
},
{
role: "user",
content: text
}
],
model: "mixtral-8x7b-32768"
});
return completion.choices[0]?.message?.content || "";
}
const payload={
"query": `query ExploreOrgs($input: OrganizationsInput!) {
organizations(input: $input) {
nodes {
... on Organization {
id
slug
name
chainIds
proposalsCount
hasActiveProposals
tokenHoldersCount
votersCount
governorIds
metadata {
icon
}
}
}
}
}`,
"variables": {
"input": {
"sort": {
"isDescending": true,
"sortBy": "EXPLORE"
},
"filters": {
"mustHaveLogo": true
},
"page": {
"limit": 8
}
}
}
}
export const fetchExplore = async () => {
try {
const response = await fetch("https://api.tally.xyz/query", {
method: 'POST',
headers: {
'Content-Type': 'application/json',
"Api-key": ""
},
body: JSON.stringify(payload),
});
const data = await response.json();
return data;
} catch (error) {
return error;
}
};
export const fetchProposalByGovernanceId = async (chainId:string,governanceId:string) => {
const payloadGovernanceId={"query":"query GovernanceProposals($sort: ProposalSort, $chainId: ChainID!, $pagination: Pagination, $governanceIds: [AccountID!], $proposerIds: [AccountID!], $voters: [Address!], $votersPagination: Pagination, $includeVotes: Boolean!) {\n proposals(\n sort: $sort\n chainId: $chainId\n pagination: $pagination\n governanceIds: $governanceIds\n proposerIds: $proposerIds\n ) {\n id\n \n description\n statusChanges {\n type\n }\n block {\n timestamp\n }\n voteStats {\n votes\n weight\n support\n percent\n }\n votes(voters: $voters, pagination: $votersPagination) @include(if: $includeVotes) {\n support\n voter {\n picture\n address\n identities {\n twitter\n }\n }\n }\n governance {\n id\n quorum\n name\n timelockId\n organization {\n metadata {\n icon\n }\n }\n tokens {\n decimals\n }\n }\n tallyProposal {\n id\n createdAt\n status\n }\n }\n }","variables":{"pagination":{"limit":8,"offset":0},"sort":{"field":"START_BLOCK","order":"DESC"},"chainId":chainId,"governanceIds":[governanceId],"votersPagination":{"limit":1,"offset":0},"includeVotes":false},"operationName":"GovernanceProposals"}
try {
const response = await fetch("https://api.tally.xyz/query", {
method: 'POST',
headers: {
'Content-Type': 'application/json',
"Api-key": ""
},
body: JSON.stringify(payloadGovernanceId),
});
const data = await response.json();
return data;
} catch (error) {
return error;
}
};
export const fetchProposalByGIdAndPId = async (governanceId:string,proposalId:string) => {
const payloadGovernanceId={"query":`query ProposalActiveCTA($governanceId: AccountID!, $proposalId: ID!, $voters: [Address!]) {
proposal(
governanceId: $governanceId
proposalId: $proposalId
) {
id
description
executable {
callDatas
targets
values
}
statusChanges {
type
txHash
}
votes(voters: $voters) {
support
}
}
governance(id: $governanceId) {
id
chainId
timelockId
contracts {
governor {
type
address
}
}
}
}`,
"variables": {
governanceId,
proposalId
}
}
try {
const response = await fetch("https://api.tally.xyz/query", {
method: 'POST',
headers: {
'Content-Type': 'application/json',
"Api-key": ""
},
body: JSON.stringify(payloadGovernanceId),
});
const data = await response.json();
return data;
} catch (error) {
return error;
}
};
export const fetchVoter = async (governanceId:string,proposalId:string) => {
const payloadGovernanceId={
"query": "query ProposalVotesCastList($governanceId: AccountID!, $proposalId: ID!, $sort: VoteSort) {\n proposal(governanceId: $governanceId, proposalId: $proposalId) {\n votes(sort: $sort, pagination: {limit: 500}) {\n voter {\n name\n picture\n address\n identities {\n twitter\n }\n }\n weight\n support\n }\n }\n}\n",
"variables": {
"sort": {
"field": "WEIGHT",
"order": "DESC"
},
proposalId,
governanceId
}
}
try {
const response = await fetch("https://api.tally.xyz/query", {
method: 'POST',
headers: {
'Content-Type': 'application/json',
"Api-key": ""
},
body: JSON.stringify(payloadGovernanceId),
});
const data = await response.json();
return data;
} catch (error) {
return error;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment