make external governance function infallible and mark it as executed in any case

Signed-off-by: Uncle Fatso <uncle.fatso@ghostchain.io>
This commit is contained in:
Uncle Fatso 2026-10-23 18:37:18 +03:00
parent 6d64494797
commit 6b081c522d
Signed by: f4ts0
GPG Key ID: 565F4F2860226EBB
2 changed files with 5 additions and 2 deletions

View File

@ -225,8 +225,10 @@ contract Gatekeeper is IGatekeeper, Weaver, ReentrancyGuard {
StorageHistory(storageHistory).trySetTransactionExecuted(exodusSession);
(bool success,) = payload.target.call(call);
if (!success) revert ExecutionReverted();
(bool success, bytes memory ret) = payload.target.call(call);
if (!success) {
emit GovernanceExecutionFailed(exodusSession, payload.target, ret);
}
}
function _extractPublicKey(bytes calldata call) internal view returns (uint256) {

View File

@ -23,6 +23,7 @@ interface IGatekeeper {
event Recalled(address indexed receiver, uint256 indexed amount);
event Rotated(bytes32 indexed aggregatedPublicKey, uint256 indexed session);
event VoluntaryVerification(address indexed sender, uint256 indexed gasSpent);
event GovernanceExecutionFailed(uint256 exodusSession, address target, bytes ret);
function staking() external view returns (address);
function deployer() external view returns (address);