diff --git a/packages/governance-sdk/src/governance/accounts.ts b/packages/governance-sdk/src/governance/accounts.ts index 9d97b226..31faac8a 100644 --- a/packages/governance-sdk/src/governance/accounts.ts +++ b/packages/governance-sdk/src/governance/accounts.ts @@ -451,7 +451,7 @@ export class GovernanceConfig { minCommunityTokensToCreateProposal: BN; minInstructionHoldUpTime: number; - maxVotingTime: number; + baseVotingTime: number; communityVoteTipping: VoteTipping; minCouncilTokensToCreateProposal: BN; @@ -467,7 +467,7 @@ export class GovernanceConfig { communityVoteThreshold: VoteThreshold; minCommunityTokensToCreateProposal: BN; minInstructionHoldUpTime: number; - maxVotingTime: number; + baseVotingTime: number; communityVoteTipping?: VoteTipping; minCouncilTokensToCreateProposal: BN; @@ -484,7 +484,7 @@ export class GovernanceConfig { this.minCommunityTokensToCreateProposal = args.minCommunityTokensToCreateProposal; this.minInstructionHoldUpTime = args.minInstructionHoldUpTime; - this.maxVotingTime = args.maxVotingTime; + this.baseVotingTime = args.baseVotingTime; this.communityVoteTipping = args.communityVoteTipping ?? VoteTipping.Strict; this.minCouncilTokensToCreateProposal = args.minCouncilTokensToCreateProposal; @@ -943,11 +943,13 @@ export class Proposal { getTimeToVoteEnd(governance: Governance) { const unixTimestampInSeconds = Date.now() / 1000; - return this.isPreVotingState() - ? governance.config.maxVotingTime + const baseVotingTime = this.isPreVotingState() + ? governance.config.baseVotingTime : (this.votingAt?.toNumber() ?? 0) + - governance.config.maxVotingTime - - unixTimestampInSeconds; + governance.config.baseVotingTime - + unixTimestampInSeconds; + + return baseVotingTime + governance.config.votingCoolOffTime; } hasVoteTimeEnded(governance: Governance) { diff --git a/packages/governance-sdk/src/governance/serialisation.ts b/packages/governance-sdk/src/governance/serialisation.ts index 85bf427f..0e26bede 100644 --- a/packages/governance-sdk/src/governance/serialisation.ts +++ b/packages/governance-sdk/src/governance/serialisation.ts @@ -334,7 +334,7 @@ function createGovernanceStructSchema( ['communityVoteThreshold', 'VoteThreshold'], ['minCommunityTokensToCreateProposal', 'u64'], ['minInstructionHoldUpTime', 'u32'], - ['maxVotingTime', 'u32'], + ['baseVotingTime', 'u32'], ['communityVoteTipping', 'u8'], ['councilVoteThreshold', 'VoteThreshold'], ['councilVetoVoteThreshold', 'VoteThreshold'], diff --git a/packages/governance-sdk/tests/chat/api.test.ts b/packages/governance-sdk/tests/chat/api.test.ts index 62a8ffec..860163d2 100644 --- a/packages/governance-sdk/tests/chat/api.test.ts +++ b/packages/governance-sdk/tests/chat/api.test.ts @@ -117,12 +117,14 @@ test('postProposalComment', async () => { }), minCommunityTokensToCreateProposal: new BN(1), minInstructionHoldUpTime: 0, - maxVotingTime: getTimestampFromDays(3), + baseVotingTime: getTimestampFromDays(3), voteTipping: VoteTipping.Strict, councilVoteThreshold: new VoteThreshold({ type: VoteThresholdType.Disabled, }), minCouncilTokensToCreateProposal: new BN(1), + votingCoolOffTime: 0, + depositExemptProposalCount: 0, }); const governancePk = await withCreateMintGovernance( diff --git a/packages/governance-sdk/tests/governance/api.smoke.test.ts b/packages/governance-sdk/tests/governance/api.smoke.test.ts index e5d7f4af..03781bcb 100644 --- a/packages/governance-sdk/tests/governance/api.smoke.test.ts +++ b/packages/governance-sdk/tests/governance/api.smoke.test.ts @@ -177,13 +177,15 @@ test('setupRealm', async () => { communityVoteThreshold: communityVoteThreshold, minCommunityTokensToCreateProposal: new BN(1), minInstructionHoldUpTime: 0, - maxVotingTime: getTimestampFromDays(3), + baseVotingTime: getTimestampFromDays(3), communityVoteTipping: VoteTipping.Strict, councilVoteTipping: VoteTipping.Strict, minCouncilTokensToCreateProposal: new BN(1), councilVoteThreshold: councilVoteThreshold, councilVetoVoteThreshold: councilVetoVoteThreshold, communityVetoVoteThreshold: communityVetoVoteThreshold, + votingCoolOffTime: 0, + depositExemptProposalCount: 0, }); const governancePk = await withCreateMintGovernance( diff --git a/packages/governance-sdk/tests/governance/api.test.ts b/packages/governance-sdk/tests/governance/api.test.ts index f9c4f11e..22132b82 100644 --- a/packages/governance-sdk/tests/governance/api.test.ts +++ b/packages/governance-sdk/tests/governance/api.test.ts @@ -131,13 +131,15 @@ test('createRealmWithGovernanceAndProposal', async () => { communityVoteThreshold: communityVoteThreshold, minCommunityTokensToCreateProposal: new BN(1), minInstructionHoldUpTime: 0, - maxVotingTime: getTimestampFromDays(3), + baseVotingTime: getTimestampFromDays(3), communityVoteTipping: VoteTipping.Strict, councilVoteTipping: VoteTipping.Strict, minCouncilTokensToCreateProposal: new BN(1), councilVoteThreshold: councilVoteThreshold, councilVetoVoteThreshold: councilVetoVoteThreshold, communityVetoVoteThreshold: councilVetoVoteThreshold, + votingCoolOffTime: 0, + depositExemptProposalCount: 0, }); const governancePk = await withCreateMintGovernance( diff --git a/packages/governance-sdk/tests/governance/api.v2.test.ts b/packages/governance-sdk/tests/governance/api.v2.test.ts index 8e4981bf..bd6e8c6f 100644 --- a/packages/governance-sdk/tests/governance/api.v2.test.ts +++ b/packages/governance-sdk/tests/governance/api.v2.test.ts @@ -24,7 +24,7 @@ test('createGovernanceWithConfig', async () => { }), minCommunityTokensToCreateProposal: new BN(1), minInstructionHoldUpTime: 0, - maxVotingTime: getTimestampFromDays(3), + baseVotingTime: getTimestampFromDays(3), communityVoteTipping: VoteTipping.Strict, councilVoteTipping: VoteTipping.Strict, minCouncilTokensToCreateProposal: new BN(1), diff --git a/packages/governance-sdk/tests/governance/api.v3.test.ts b/packages/governance-sdk/tests/governance/api.v3.test.ts index e8ffbc53..65b9bff8 100644 --- a/packages/governance-sdk/tests/governance/api.v3.test.ts +++ b/packages/governance-sdk/tests/governance/api.v3.test.ts @@ -86,7 +86,7 @@ test('createGovernanceWithConfig', async () => { }), minCommunityTokensToCreateProposal: new BN(1), minInstructionHoldUpTime: 0, - maxVotingTime: getTimestampFromDays(3), + baseVotingTime: getTimestampFromDays(3), communityVoteTipping: VoteTipping.Strict, councilVoteTipping: VoteTipping.Strict, minCouncilTokensToCreateProposal: new BN(1), @@ -124,7 +124,7 @@ test('createGovernanceWithConfig', async () => { config.councilVetoVoteThreshold, ); - expect(governance.account.config.maxVotingTime).toEqual( + expect(governance.account.config.baseVotingTime).toEqual( getTimestampFromDays(3), ); diff --git a/packages/governance-sdk/tests/tools/builders.ts b/packages/governance-sdk/tests/tools/builders.ts index 91cec951..4a689718 100644 --- a/packages/governance-sdk/tests/tools/builders.ts +++ b/packages/governance-sdk/tests/tools/builders.ts @@ -334,7 +334,7 @@ export class RealmBuilder { }), minCommunityTokensToCreateProposal: new BN(1), minInstructionHoldUpTime: 0, - maxVotingTime: getTimestampFromDays(3), + baseVotingTime: getTimestampFromDays(3), communityVoteTipping: VoteTipping.Strict, councilVoteTipping: VoteTipping.Strict, minCouncilTokensToCreateProposal: new BN(1),