diff --git a/src/config/devnet.json b/src/config/devnet.json index bd7de9e3d..dc04a9fd3 100644 --- a/src/config/devnet.json +++ b/src/config/devnet.json @@ -51,7 +51,7 @@ "escrow": "erd1qqqqqqqqqqqqqpgqz0wkk0j6y4h0mcxfxsg023j4x5sfgrmz0n4s4swp7a", "governance": { "energy": [ - "erd1qqqqqqqqqqqqqpgqu5u5kgmjm067dhwdfe4l3flwmadm2nqlczfskufug3" + "erd1qqqqqqqqqqqqqpgqmufzvsm3mncnpsawj0ypyzj2d9xl9xkvczfsmkxn5y" ], "token": [] } diff --git a/src/modules/governance/governance.energy.contract.resolver.ts b/src/modules/governance/governance.energy.contract.resolver.ts index 5d03657d2..361c064a3 100644 --- a/src/modules/governance/governance.energy.contract.resolver.ts +++ b/src/modules/governance/governance.energy.contract.resolver.ts @@ -1,4 +1,4 @@ -import { Parent, ResolveField, Resolver } from '@nestjs/graphql'; +import { Args, Int, Parent, ResolveField, Resolver } from '@nestjs/graphql'; import { GovernanceAbiService } from './services/governance.abi.service'; import { GovernanceEnergyContract } from './models/energy.contract.model'; import { GovernanceProposal } from './models/governance.proposal.model'; @@ -49,8 +49,17 @@ export class GovernanceEnergyContractResolver { } @ResolveField(() => [GovernanceProposal]) - async proposals(@Parent() energyContract: GovernanceEnergyContract): Promise { - return this.governanceAbi.proposals(energyContract.address); + async proposals( + @Parent() energyContract: GovernanceEnergyContract, + @Args('proposalId', {type: ()=> Int, nullable: true}) proposalId?: number + ): Promise { + const proposals = await this.governanceAbi.proposals(energyContract.address); + + if(proposalId) { + return proposals.filter(proposal => proposal.proposalId === proposalId); + } else { + return proposals; + } } @ResolveField() diff --git a/src/modules/governance/models/governance.proposal.model.ts b/src/modules/governance/models/governance.proposal.model.ts index 20ba7b25c..759e5e96a 100644 --- a/src/modules/governance/models/governance.proposal.model.ts +++ b/src/modules/governance/models/governance.proposal.model.ts @@ -31,6 +31,8 @@ export class Description { hash: string; @Field(() => Int) strapiId: number; + @Field(() => Int) + version: number; constructor(init: Partial) { Object.assign(this, init); diff --git a/src/modules/governance/services/governance.service.ts b/src/modules/governance/services/governance.service.ts index ee443c7ad..02b869097 100644 --- a/src/modules/governance/services/governance.service.ts +++ b/src/modules/governance/services/governance.service.ts @@ -18,7 +18,7 @@ export class GovernanceService { let governanceAddresses = governanceContractsAddresses(); if (filters.contracts) { - governanceAddresses = governanceAddresses.filter((address) => !filters.contracts.includes(address)); + governanceAddresses = governanceAddresses.filter((address) => filters.contracts.includes(address)); } const governance: GovernanceEnergyContract[] = [];