Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/interfaces/IBalancerVaultAdmin.sol
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,7 @@ interface IBalancerVaultAdmin {
/// @return minimumTradeAmount The minimum trade amount.
/// This is used to ensure that trades do not occur below a certain threshold.
function getMinimumTradeAmount() external view returns (uint256);
/// @dev Gets the balancer vault address.
/// @return balancerVault The address of the Balancer vault.
function vault() external view returns (address balancerVault);
}
31 changes: 31 additions & 0 deletions test/DerolasAuction.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ contract TestDerolasAuctionContract is Test {
// Test parameters
address public whaleAddress = 0xC8F7030a4e25585624e2Fc792255a547255Cd77c;
uint256 public topUpAmount = 2e18; // 2 Incentive Token
address public wethAddress = 0x4200000000000000000000000000000000000006; // WETH address on Base

function setUp() public {
c = new DerolasAuction(
Expand Down Expand Up @@ -264,6 +265,36 @@ contract TestDerolasAuctionContract is Test {
assertTrue(c.isRatioPass(updatedNonce, initialNonce, 0), "isRatioPass should return true after increment");
}

// Balancer donation tests.
function testBalancerEthDonation() public {
// Check that a donation can be made using Balancer's ETH donation method
this.testTopupIncentivesBalance(); // Ensure incentives are topped up
this.testDonateWithIncentives(); // Ensure a donation has been made
IBalancerVaultAdmin balancerVaultAdminContract = IBalancerVaultAdmin(balancerVaultAdmin);
uint256 initialBalance = IToken(wethAddress).balanceOf(balancerVaultAdminContract.vault());
this.testCanEndRound(); // Ensure the round can be ended
uint256 finalBalance = IToken(wethAddress).balanceOf(balancerVaultAdminContract.vault());
assertEq(
finalBalance,
initialBalance + minimumDonation,
"Final balance should be greater than initial balance after donation"
);
}

function testBalancerUnclaimedIncentiveDonation() public {
// Check that a donation can be made using Balancer's ETH donation method
IBalancerVaultAdmin balancerVaultAdminContract = IBalancerVaultAdmin(balancerVaultAdmin);
uint256 initialBalance = IToken(incentiveTokenAddress).balanceOf(balancerVaultAdminContract.vault());
this.testTopupIncentivesBalance(); // Ensure incentives are topped up
this.testDonateWithIncentives(); // Ensure a donation has been made
this.testCanEndRound(); // Ensure the round can be ended
uint256 secondBalance = IToken(incentiveTokenAddress).balanceOf(balancerVaultAdminContract.vault());
assertEq(secondBalance, initialBalance, "Vault balance equal to initial balance after 1st round");
this.testCanEndRound(); // Ensure the round can be ended again
uint256 finalBalance = IToken(incentiveTokenAddress).balanceOf(balancerVaultAdminContract.vault());
assertEq(finalBalance, initialBalance + availableRewards, "Final balance should include unclaimed");
}

// admin tests
function testCanChangeOwner() public {
// Check that the owner can change the contract owner
Expand Down