diff --git a/src/modules/governance/models/governance.contract.model.ts b/src/modules/governance/models/governance.contract.model.ts index ef4458d75..f7a80f52a 100644 --- a/src/modules/governance/models/governance.contract.model.ts +++ b/src/modules/governance/models/governance.contract.model.ts @@ -6,6 +6,8 @@ import { EsdtToken } from '../../tokens/models/esdtToken.model'; export class GovernanceTokenSnapshotContract { @Field() address: string; + @Field(() => Int) + shard: number; @Field() minFeeForPropose: string; @Field() diff --git a/src/modules/governance/resolvers/governance.contract.resolver.ts b/src/modules/governance/resolvers/governance.contract.resolver.ts index d516f6e07..fb45db88f 100644 --- a/src/modules/governance/resolvers/governance.contract.resolver.ts +++ b/src/modules/governance/resolvers/governance.contract.resolver.ts @@ -13,6 +13,11 @@ export class GovernanceTokenSnapshotContractResolver { ) { } + @ResolveField() + async shard(@Parent() contract: GovernanceTokenSnapshotContract): Promise { + return this.governanceAbi.getAddressShardID(contract.address); + } + @ResolveField() async minFeeForPropose(@Parent() contract: GovernanceTokenSnapshotContract): Promise { return this.governanceAbi.minFeeForPropose(contract.address); diff --git a/src/modules/governance/services/governance.abi.service.ts b/src/modules/governance/services/governance.abi.service.ts index 6a6d4fdad..d1acba9b5 100644 --- a/src/modules/governance/services/governance.abi.service.ts +++ b/src/modules/governance/services/governance.abi.service.ts @@ -29,6 +29,16 @@ export class GovernanceTokenSnapshotAbiService super(mxProxy); } + @ErrorLoggerAsync({ className: GovernanceTokenSnapshotAbiService.name }) + @GetOrSetCache({ + baseKey: 'governance', + remoteTtl: CacheTtlInfo.ContractState.remoteTtl, + localTtl: CacheTtlInfo.ContractState.localTtl, + }) + async getAddressShardID(scAddress: string): Promise { + return await this.mxProxy.getAddressShardID(scAddress); + } + @ErrorLoggerAsync({ className: GovernanceTokenSnapshotAbiService.name }) @GetOrSetCache({ baseKey: 'governance',