Skip to content

Commit

Permalink
add NativeDeposited event to LM#receive() function (#1001)
Browse files Browse the repository at this point in the history
## Motivation
https://smartcontract-it.atlassian.net/browse/LM-38


## Solution
Add the event
  • Loading branch information
RyanRHall authored Jun 18, 2024
1 parent 4913dd6 commit e92a005
Show file tree
Hide file tree
Showing 13 changed files with 254 additions and 67 deletions.
5 changes: 5 additions & 0 deletions contracts/.changeset/flat-bikes-greet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@chainlink/contracts-ccip': patch
---

add LM event to receive() function
9 changes: 5 additions & 4 deletions contracts/gas-snapshots/liquiditymanager.gas-snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ LiquidityManager__report:test_EmptyReportReverts() (gas: 11159)
LiquidityManager_addLiquidity:test_addLiquiditySuccess() (gas: 279154)
LiquidityManager_rebalanceLiquidity:test_InsufficientLiquidityReverts() (gas: 19585)
LiquidityManager_rebalanceLiquidity:test_InvalidRemoteChainReverts() (gas: 190304)
LiquidityManager_rebalanceLiquidity:test_rebalanceBetweenPoolsSuccess() (gas: 8809026)
LiquidityManager_rebalanceLiquidity:test_rebalanceBetweenPoolsSuccess_AlreadyFinalized() (gas: 8731220)
LiquidityManager_rebalanceLiquidity:test_rebalanceBetweenPools_MultiStageFinalization() (gas: 8726428)
LiquidityManager_rebalanceLiquidity:test_rebalanceBetweenPools_NativeRewrap() (gas: 8653242)
LiquidityManager_rebalanceLiquidity:test_rebalanceBetweenPoolsSuccess() (gas: 8831482)
LiquidityManager_rebalanceLiquidity:test_rebalanceBetweenPoolsSuccess_AlreadyFinalized() (gas: 8742448)
LiquidityManager_rebalanceLiquidity:test_rebalanceBetweenPools_MultiStageFinalization() (gas: 8737656)
LiquidityManager_rebalanceLiquidity:test_rebalanceBetweenPools_NativeRewrap() (gas: 8665799)
LiquidityManager_rebalanceLiquidity:test_rebalanceLiquiditySuccess() (gas: 379308)
LiquidityManager_receive:test_receive_success() (gas: 21182)
LiquidityManager_removeLiquidity:test_InsufficientLiquidityReverts() (gas: 184481)
LiquidityManager_removeLiquidity:test_OnlyOwnerReverts() (gas: 10967)
LiquidityManager_removeLiquidity:test_removeLiquiditySuccess() (gas: 236047)
Expand Down
9 changes: 8 additions & 1 deletion contracts/src/v0.8/liquiditymanager/LiquidityManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@ contract LiquidityManager is ILiquidityManager, OCR3Base {
/// @param newBalance The new minimum liquidity.
event MinimumLiquiditySet(uint256 oldBalance, uint256 newBalance);

/// @notice Emitted when someone sends native to this contract
/// @param amount The amount of native deposited
/// @param depositor The address that deposited the native
event NativeDeposited(uint256 amount, address depositor);

/// @notice Emitted when native balance is withdrawn by contract owner
/// @param amount The amount of native withdrawn
/// @param destination The address the native is sent to
Expand Down Expand Up @@ -167,7 +172,9 @@ contract LiquidityManager is ILiquidityManager, OCR3Base {
// │ Native Management │
// ================================================================

receive() external payable {}
receive() external payable {
emit NativeDeposited(msg.value, msg.sender);
}

/// @notice withdraw native balance
function withdrawNative(uint256 amount, address payable destination) external onlyOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ contract ArbitrumL2BridgeAdapter is IBridgeAdapter {
address /* remoteSender */,
address /* localReceiver */,
bytes calldata /* bridgeSpecificPayload */
) external override returns (bool) {
) external pure override returns (bool) {
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ contract OptimismL2BridgeAdapter is IBridgeAdapter {
address /* remoteSender */,
address /* localReceiver */,
bytes calldata /* bridgeSpecificPayload */
) external override returns (bool) {
) external pure override returns (bool) {
return true;
}

Expand Down
16 changes: 16 additions & 0 deletions contracts/src/v0.8/liquiditymanager/test/LiquidityManager.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -864,3 +864,19 @@ contract LiquidityManager_withdrawNative is LiquidityManagerSetup {
s_liquidityManager.withdrawNative(1, payable(receiver));
}
}

contract LiquidityManager_receive is LiquidityManagerSetup {
event NativeDeposited(uint256 amount, address depositor);

address private depositor = makeAddr("depositor");

function test_receive_success() external {
vm.deal(depositor, 100);
uint256 before = address(s_liquidityManager).balance;
vm.expectEmit();
emit NativeDeposited(100, depositor);
vm.startPrank(depositor);
payable(address(s_liquidityManager)).transfer(100);
assertEq(address(s_liquidityManager).balance, before + 100);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ contract MockL2BridgeAdapter is IBridgeAdapter {
address /* remoteSender */,
address /* localReceiver */,
bytes calldata /* bridgeSpecificData */
) external override returns (bool) {
) external pure override returns (bool) {
return true;
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit e92a005

Please sign in to comment.