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:
parent
6d64494797
commit
6b081c522d
@ -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) {
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user