From 51cb45d1e298bd5221dbf1e780f1f8d27ca24f89 Mon Sep 17 00:00:00 2001 From: Shawn Rizo Date: Mon, 6 Oct 2025 14:48:51 -0400 Subject: [PATCH 1/5] feat: Add EmergencyAction Event --- src/onchain/TestArbitrage.sol | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/onchain/TestArbitrage.sol b/src/onchain/TestArbitrage.sol index a74c0a0..6c4bc92 100644 --- a/src/onchain/TestArbitrage.sol +++ b/src/onchain/TestArbitrage.sol @@ -199,6 +199,8 @@ contract TestArbitrage is IFlashLoanRecipient, ReentrancyGuard, Ownable, Pausabl /// @param amount Profit amount /// @param token Token address event ProfitDistributed(address indexed recipient, uint256 amount, address indexed token); + + event EmergencyAction(string action, address token, uint256 amount, address executor); ////////////////////////////////////////////////////////////// // CONSTRUCTOR // ////////////////////////////////////////////////////////////// From 70db6b81892abd9987574d35eb1a0b6ccc9102a0 Mon Sep 17 00:00:00 2001 From: Shawn Rizo Date: Mon, 6 Oct 2025 14:49:15 -0400 Subject: [PATCH 2/5] feat: Add EmergencyAction Event Natspec Comments --- src/onchain/TestArbitrage.sol | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/onchain/TestArbitrage.sol b/src/onchain/TestArbitrage.sol index 6c4bc92..a902afc 100644 --- a/src/onchain/TestArbitrage.sol +++ b/src/onchain/TestArbitrage.sol @@ -200,6 +200,11 @@ contract TestArbitrage is IFlashLoanRecipient, ReentrancyGuard, Ownable, Pausabl /// @param token Token address event ProfitDistributed(address indexed recipient, uint256 amount, address indexed token); + /// @notice Emitted during emergency operations + /// @param action Type of emergency action + /// @param token Token involved (if applicable) + /// @param amount Amount involved (if applicable) + /// @param executor Address executing the emergency action event EmergencyAction(string action, address token, uint256 amount, address executor); ////////////////////////////////////////////////////////////// // CONSTRUCTOR // From 75cbda50361317a2f7152ab8b266cad81f003115 Mon Sep 17 00:00:00 2001 From: Shawn Rizo Date: Mon, 6 Oct 2025 14:51:03 -0400 Subject: [PATCH 3/5] feat: Add pause Function --- src/onchain/TestArbitrage.sol | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/onchain/TestArbitrage.sol b/src/onchain/TestArbitrage.sol index a902afc..30fa33a 100644 --- a/src/onchain/TestArbitrage.sol +++ b/src/onchain/TestArbitrage.sol @@ -206,6 +206,7 @@ contract TestArbitrage is IFlashLoanRecipient, ReentrancyGuard, Ownable, Pausabl /// @param amount Amount involved (if applicable) /// @param executor Address executing the emergency action event EmergencyAction(string action, address token, uint256 amount, address executor); + ////////////////////////////////////////////////////////////// // CONSTRUCTOR // ////////////////////////////////////////////////////////////// @@ -224,4 +225,9 @@ contract TestArbitrage is IFlashLoanRecipient, ReentrancyGuard, Ownable, Pausabl emit ConfigurationUpdated("deployment", 0, block.timestamp, msg.sender); } + + function pause() external onlyOwner { + _pause(); + emit EmergencyAction("contract_paused", address(0), 0, msg.sender); + } } From f639fc8315ef5a16a90b4ee2e4bb6b5740c785dd Mon Sep 17 00:00:00 2001 From: Shawn Rizo Date: Mon, 6 Oct 2025 14:51:26 -0400 Subject: [PATCH 4/5] feat: Add unpause Function Admin Function --- src/onchain/TestArbitrage.sol | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/onchain/TestArbitrage.sol b/src/onchain/TestArbitrage.sol index 30fa33a..e8fd2aa 100644 --- a/src/onchain/TestArbitrage.sol +++ b/src/onchain/TestArbitrage.sol @@ -230,4 +230,9 @@ contract TestArbitrage is IFlashLoanRecipient, ReentrancyGuard, Ownable, Pausabl _pause(); emit EmergencyAction("contract_paused", address(0), 0, msg.sender); } + + function unpause() external onlyOwner { + _unpause(); + emit EmergencyAction("contract_unpaused", address(0), 0, msg.sender); + } } From 966a100ab78f54c8e8070b3286a4f025ed26f017 Mon Sep 17 00:00:00 2001 From: Shawn Rizo Date: Mon, 6 Oct 2025 14:52:02 -0400 Subject: [PATCH 5/5] feat: Add unpause & pause External Admin Function Natspec Comments --- src/onchain/TestArbitrage.sol | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/onchain/TestArbitrage.sol b/src/onchain/TestArbitrage.sol index e8fd2aa..95aee21 100644 --- a/src/onchain/TestArbitrage.sol +++ b/src/onchain/TestArbitrage.sol @@ -226,11 +226,15 @@ contract TestArbitrage is IFlashLoanRecipient, ReentrancyGuard, Ownable, Pausabl emit ConfigurationUpdated("deployment", 0, block.timestamp, msg.sender); } + /// @notice Pauses the contract in emergency situations + /// @dev Uses OpenZeppelin Pausable for standardized pause functionality function pause() external onlyOwner { _pause(); emit EmergencyAction("contract_paused", address(0), 0, msg.sender); } + /// @notice Unpauses the contract + /// @dev Restores normal contract operations function unpause() external onlyOwner { _unpause(); emit EmergencyAction("contract_unpaused", address(0), 0, msg.sender);