Skip to content

Commit

Permalink
fix failing WethAndEth test
Browse files Browse the repository at this point in the history
  • Loading branch information
0xmovses committed Jun 13, 2024
1 parent 6ca60ce commit c54b226
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 11 deletions.
2 changes: 2 additions & 0 deletions protocol-units/bridge/contracts/src/AtomicBridgeInitator.sol
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import {console} from "forge-std/Test.sol";
import "./IAtomicBridgeInitiator.sol";
import "./WETH/interfaces/IWETH10.sol";
// SPDX-License-Identifier: MIT
Expand Down Expand Up @@ -28,6 +29,7 @@ contract AtomicBridgeInitiator is IAtomicBridgeInitiator {
bytes32 _hashLock,
uint _timeLock
) external payable override returns (bytes32 _bridgeTransferId) {
console.log("initiateBridgeTransfer");
uint256 totalAmount = _wethAmount;

// If msg.value is greater than 0, convert ETH to WETH and add to total amount
Expand Down
31 changes: 20 additions & 11 deletions protocol-units/bridge/contracts/test/AtomicBridgeInitiator.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,8 @@ contract AtomicBridgeInitiatorTest is Test {
}

function testInitiateBridgeTransferWithWeth() public {
uint256 wethAmount = 1 ether;
uint256 wethAmount = 1 ether; // use ethers unit

// Deal WETH to the originator
vm.deal(originator, 1 ether);
vm.startPrank(originator);
weth.deposit{value: wethAmount}();
Expand Down Expand Up @@ -133,15 +132,22 @@ contract AtomicBridgeInitiatorTest is Test {

function testInitiateBridgeTransferWithEthAndWeth() public {
uint256 wethAmount = 1 ether;
uint256 ethAmount = 1 ether;
uint256 ethAmount = 2 ether;
uint256 totalAmount = wethAmount + ethAmount;

// Deal WETH to the originator
vm.deal(originator, ethAmount);
// Ensure the originator has sufficient ETH
vm.deal(originator, 100 ether);

vm.startPrank(originator);
// Ensure WETH contract is correctly funded and transfer WETH to originator
weth.deposit{value: wethAmount}();
weth.transfer(originator, wethAmount);

assertEq(weth.balanceOf(originator), wethAmount, "WETH balance mismatch");

vm.startPrank(originator);

// Try to initiate bridge transfer
bytes32 bridgeTransferId = atomicBridgeInitiator.initiateBridgeTransfer{value: ethAmount}(
wethAmount,
originator,
Expand All @@ -150,6 +156,7 @@ contract AtomicBridgeInitiatorTest is Test {
timeLock
);

// Fetch the details of the initiated bridge transfer
(
bool exists,
uint transferAmount,
Expand All @@ -159,16 +166,18 @@ contract AtomicBridgeInitiatorTest is Test {
uint transferTimeLock
) = atomicBridgeInitiator.getBridgeTransferDetail(bridgeTransferId);

assertTrue(exists);
assertEq(transferAmount, totalAmount);
assertEq(transferOriginator, originator);
assertEq(transferRecipient, recipient);
assertEq(transferHashLock, hashLock);
assertGt(transferTimeLock, block.timestamp);
// Assertions
assertTrue(exists, "Bridge transfer does not exist");
assertEq(transferAmount, totalAmount, "Transfer amount mismatch");
assertEq(transferOriginator, originator, "Originator address mismatch");
assertEq(transferRecipient, recipient, "Recipient address mismatch");
assertEq(transferHashLock, hashLock, "HashLock mismatch");
assertGt(transferTimeLock, block.timestamp, "TimeLock is not greater than current block timestamp");

vm.stopPrank();
}


function testRefundBridgeTransfer() public {
vm.deal(originator, 1 ether);
vm.startPrank(originator);
Expand Down

0 comments on commit c54b226

Please sign in to comment.