diff --git a/contracts/Cross-chain/OmnichainGovernanceExecutor.sol b/contracts/Cross-chain/OmnichainGovernanceExecutor.sol index 65020508..505710bd 100644 --- a/contracts/Cross-chain/OmnichainGovernanceExecutor.sol +++ b/contracts/Cross-chain/OmnichainGovernanceExecutor.sol @@ -202,6 +202,7 @@ contract OmnichainGovernanceExecutor is ReentrancyGuard, BaseOmnichainController ++i; } } + delete queued[proposalId_]; } /** @@ -237,6 +238,7 @@ contract OmnichainGovernanceExecutor is ReentrancyGuard, BaseOmnichainController ++i; } } + delete queued[proposalId_]; } /** diff --git a/tests/Cross-chain/Omnichain.ts b/tests/Cross-chain/Omnichain.ts index 54f2e9a4..b12ea21a 100644 --- a/tests/Cross-chain/Omnichain.ts +++ b/tests/Cross-chain/Omnichain.ts @@ -426,6 +426,7 @@ describe("Omnichain: ", async function () { const proposalId = await getLastRemoteProposalId(); await expect(executor.execute(proposalId)).to.emit(executor, "ProposalExecuted").withArgs(proposalId); expect(await executor.state(proposalId)).equals(2); + expect(await executor.queued(proposalId)).equals(false); }); it("Should update delay of timelock on destination", async function () { @@ -440,6 +441,7 @@ describe("Omnichain: ", async function () { mine(4500); const proposalId = await getLastRemoteProposalId(); await executor.execute(proposalId); + expect(await executor.queued(proposalId)).equals(false); expect(await NormalTimelock.delay()).to.equals(newDelay); }); @@ -515,6 +517,7 @@ describe("Omnichain: ", async function () { .to.emit(executor, "ProposalCanceled") .withArgs(proposalId); expect(await executor.state(proposalId)).equals(0); + expect(await executor.queued(proposalId)).equals(false); }); it("Reverts when cancel is called after execute", async function () {