From e993d7af66fd4b1522e25d0ffdbfb585da147ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Manuel=20Mari=C3=B1as=20Bascoy?= Date: Tue, 12 Dec 2023 09:28:07 +0100 Subject: [PATCH] fix update detection --- modules/client/src/internal/client/methods.ts | 20 ++++++++----------- .../test/integration/client/methods.test.ts | 4 +++- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/modules/client/src/internal/client/methods.ts b/modules/client/src/internal/client/methods.ts index b4cda915c..023ebc142 100644 --- a/modules/client/src/internal/client/methods.ts +++ b/modules/client/src/internal/client/methods.ts @@ -69,6 +69,7 @@ import { TransferSortBy, } from "../../types"; import { + ProposalActionTypes, SubgraphBalance, SubgraphDao, SubgraphDaoListItem, @@ -83,8 +84,6 @@ import { import { classifyProposalActions, containsDaoUpdateAction, - containsPluginUpdateActionBlock, - containsPluginUpdateActionBlockWithRootPermission, toAssetBalance, toDaoActions, toDaoDetails, @@ -1125,7 +1124,9 @@ export class ClientMethods extends ClientCore implements IClientMethods { const subgraphActions = iproposal.actions; let actions = toDaoActions(subgraphActions); const classifiedActions = classifyProposalActions(actions); - return containsDaoUpdateAction(classifiedActions); + return classifiedActions.includes( + ProposalActionTypes.UPGRADE_TO_AND_CALL, + ) || classifiedActions.includes(ProposalActionTypes.UPGRADE_TO); } /** * Given a proposal id returns if that proposal is a plugin update proposal @@ -1148,14 +1149,9 @@ export class ClientMethods extends ClientCore implements IClientMethods { if (!iproposal) { return false; } - const subgraphActions = iproposal.actions; - let actions = toDaoActions(subgraphActions); + let actions = toDaoActions(iproposal.actions); let classifiedActions = classifyProposalActions(actions); - if (containsDaoUpdateAction(classifiedActions)) { - classifiedActions = classifiedActions.slice(1); - } - return containsPluginUpdateActionBlock(classifiedActions) || - containsPluginUpdateActionBlockWithRootPermission(classifiedActions); + return classifiedActions.includes(ProposalActionTypes.APPLY_UPDATE); } /** * Check if the specified proposal id is valid for updating a plugin @@ -1198,11 +1194,11 @@ export class ClientMethods extends ClientCore implements IClientMethods { ], }; } - + let daoActions = toDaoActions(iproposal.actions); const classifiedActions = classifyProposalActions(daoActions); - // remove upgradeToAndCall action + // remove upgradeToAndCall action if (containsDaoUpdateAction(classifiedActions)) { daoActions = daoActions.slice(1); } diff --git a/modules/client/test/integration/client/methods.test.ts b/modules/client/test/integration/client/methods.test.ts index 63999ae94..7ce0119c8 100644 --- a/modules/client/test/integration/client/methods.test.ts +++ b/modules/client/test/integration/client/methods.test.ts @@ -2068,7 +2068,9 @@ describe("Client", () => { TEST_MULTISIG_PROPOSAL_ID, ); expect(res.isValid).toBe(false); - expect(res.proposalSettingsErrorCauses).toMatchObject([ProposalSettingsErrorCause.PROPOSAL_NOT_FOUND]); + expect(res.proposalSettingsErrorCauses).toMatchObject([ + ProposalSettingsErrorCause.PROPOSAL_NOT_FOUND, + ]); expect(res.actionErrorCauses).toMatchObject([]); }); });