From 4f302418b23e8de9f243df16fc6dbb4c21c4073c Mon Sep 17 00:00:00 2001 From: 0xb337r007 <0xe4e5@proton.me> Date: Mon, 11 Mar 2024 10:48:07 +0100 Subject: [PATCH] chore(Vault): test withdrawUntrackedERC20 --- .gas-snapshot | 9 ++++++--- test/CommunityVault.t.sol | 40 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/.gas-snapshot b/.gas-snapshot index 5fd2441..3710ab5 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -4,15 +4,18 @@ AddEntryTest:test_RevertWhen_InvalidAddress() (gas: 25133) AddEntryTest:test_RevertWhen_SenderIsNotTokenDeployer() (gas: 14827) CommunityERC20Test:test_Deployment() (gas: 35198) CommunityTokenDeployerTest:test_Deployment() (gas: 14805) -CommunityVaulWithdrawUntrackedERC721Test:testRevertWithdrawalIfTokenIsTracked() (gas: 37990) -CommunityVaulWithdrawUntrackedERC721Test:testSuccessfulDepositERC721() (gas: 73349) -CommunityVaulWithdrawUntrackedERC721Test:test_Deployment() (gas: 10783) CommunityVaultBaseERC20Test:test_Deployment() (gas: 10641) CommunityVaultBaseERC721Test:test_Deployment() (gas: 10641) CommunityVaultBaseTransferERC721Test:test_Deployment() (gas: 10641) CommunityVaultDepositERC721Test:testSuccessfulDepositERC721() (gas: 184942) CommunityVaultDepositERC721Test:test_Deployment() (gas: 10783) CommunityVaultTest:test_Deployment() (gas: 10641) +CommunityVaultWithdrawUntrackedERC20Test:testRevertWithdrawalIfAmountIsMoreThanTheUntracked() (gas: 30810) +CommunityVaultWithdrawUntrackedERC20Test:testSuccessfulWithdrawal() (gas: 64806) +CommunityVaultWithdrawUntrackedERC20Test:test_Deployment() (gas: 10761) +CommunityVaultWithdrawUntrackedERC721Test:testRevertWithdrawalIfTokenIsTracked() (gas: 37990) +CommunityVaultWithdrawUntrackedERC721Test:testSuccessfulWithdrUntrackedERC721() (gas: 73328) +CommunityVaultWithdrawUntrackedERC721Test:test_Deployment() (gas: 10783) CreateTest:test_Create() (gas: 2374801) CreateTest:test_Create() (gas: 2661968) CreateTest:test_RevertWhen_InvalidOwnerTokenAddress() (gas: 15523) diff --git a/test/CommunityVault.t.sol b/test/CommunityVault.t.sol index 8720922..7123cf4 100644 --- a/test/CommunityVault.t.sol +++ b/test/CommunityVault.t.sol @@ -74,7 +74,7 @@ contract TransferERC20ByNonAdminTest is CommunityVaultBaseERC20Test { } contract TransferERC20ByAdminTest is CommunityVaultBaseERC20Test { - uint256 depositAmount = 10e18; + uint256 private depositAmount = 10e18; function setUp() public virtual override { CommunityVaultBaseERC20Test.setUp(); @@ -164,6 +164,40 @@ contract DepositERC20Test is CommunityVaultBaseERC20Test { } } +contract CommunityVaultWithdrawUntrackedERC20Test is CommunityVaultBaseERC20Test { + function setUp() public virtual override { + CommunityVaultBaseERC20Test.setUp(); + assertEq(erc20Token.balanceOf(accounts[0]), 10e18); + + vm.startPrank(accounts[0]); + + // deposit 2 tokens + erc20Token.approve(address(vault), 2e18); + vault.depositERC20(address(erc20Token), 2e18); + + // trasfer 8 tokens + erc20Token.transfer(address(vault), 8e18); + vm.stopPrank(); + } + + function testRevertWithdrawalIfAmountIsMoreThanTheUntracked() public { + vm.prank(deployer); + vm.expectRevert(CommunityVault.CommunityVault_AmountExceedsUntrackedBalanceERC20.selector); + vault.withdrawUntrackedERC20(address(erc20Token), 9e18, accounts[0]); + } + + function testSuccessfulWithdrawal() public { + assertEq(erc20Token.balanceOf(accounts[0]), 0e18); + assertEq(erc20Token.balanceOf(address(vault)), 10e18); + + vm.prank(deployer); + vault.withdrawUntrackedERC20(address(erc20Token), 8e18, accounts[0]); + + assertEq(erc20Token.balanceOf(accounts[0]), 8e18); + assertEq(erc20Token.balanceOf(address(vault)), 2e18); + } +} + contract CommunityVaultBaseERC721Test is CommunityVaultTest { function setUp() public virtual override { CommunityVaultTest.setUp(); @@ -304,7 +338,7 @@ contract CommunityVaultDepositERC721Test is CommunityVaultBaseERC721Test { } } -contract CommunityVaulWithdrawUntrackedERC721Test is CommunityVaultBaseERC721Test { +contract CommunityVaultWithdrawUntrackedERC721Test is CommunityVaultBaseERC721Test { function setUp() public virtual override { CommunityVaultBaseERC721Test.setUp(); vm.startPrank(accounts[0]); @@ -332,7 +366,7 @@ contract CommunityVaulWithdrawUntrackedERC721Test is CommunityVaultBaseERC721Tes vault.withdrawUntrackedERC721(address(erc721Token), ids, accounts[0]); } - function testSuccessfulDepositERC721() public { + function testSuccessfulWithdrUntrackedERC721() public { uint256[] memory ids = new uint256[](2); ids[0] = 0; ids[1] = 1;