test added; is it possible to breakout for each participant from bond depository if warmup is changed
Signed-off-by: Uncle Fatso <uncle.fatso@ghostchain.io>
This commit is contained in:
parent
17e82c809c
commit
b586b07c24
@ -493,4 +493,53 @@ contract GhostBondDepositoryTest is Test {
|
|||||||
assertEq(ALICE.balance, amount);
|
assertEq(ALICE.balance, amount);
|
||||||
assertEq(IERC20(address(weth)).balanceOf(address(treasury)), 0);
|
assertEq(IERC20(address(weth)).balanceOf(address(treasury)), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_forceRedeemWorksBasedOnTheBalanceRemidner() public {
|
||||||
|
uint256 aliceAmount = _createNativeBond();
|
||||||
|
uint256 aliceAmountUsed = aliceAmount / 8;
|
||||||
|
assertEq(ALICE.balance, aliceAmount);
|
||||||
|
|
||||||
|
uint256 i;
|
||||||
|
for (; i < 8; ) {
|
||||||
|
vm.prank(ALICE);
|
||||||
|
depository.deposit{value: aliceAmountUsed}(1, aliceAmountUsed, type(uint256).max, ALICE, ALICE);
|
||||||
|
unchecked { ++i; }
|
||||||
|
}
|
||||||
|
|
||||||
|
vm.startPrank(GOVERNOR);
|
||||||
|
Gatekeeper gatekeeper = new Gatekeeper(address(staking), 0, 0, 0, 0, 0);
|
||||||
|
staking.setGatekeeperAddress(address(gatekeeper));
|
||||||
|
staking.setWarmupPeriod(10);
|
||||||
|
vm.stopPrank();
|
||||||
|
|
||||||
|
uint256 bobAmount = aliceAmount / 2;
|
||||||
|
uint256 bobAmountUsed = bobAmount / 8;
|
||||||
|
|
||||||
|
vm.deal(BOB, bobAmount);
|
||||||
|
assertEq(BOB.balance, bobAmount);
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
for (; i < 7; ) {
|
||||||
|
vm.prank(BOB);
|
||||||
|
depository.deposit{value: bobAmountUsed}(1, bobAmountUsed, type(uint256).max, BOB, BOB);
|
||||||
|
unchecked { ++i; }
|
||||||
|
}
|
||||||
|
|
||||||
|
skip(DEPOSIT_INTERVAL);
|
||||||
|
|
||||||
|
(, uint256 payout,, bool matured) = staking.warmupInfo(address(depository));
|
||||||
|
assertEq(ghst.balanceOf(address(depository)) > 0, true);
|
||||||
|
assertEq(payout > 0, true);
|
||||||
|
assertEq(matured, true);
|
||||||
|
|
||||||
|
vm.prank(BOB);
|
||||||
|
depository.forceRedeemAll(bytes32(0));
|
||||||
|
|
||||||
|
vm.prank(ALICE);
|
||||||
|
depository.forceRedeemAll(bytes32(0));
|
||||||
|
|
||||||
|
(, payout,,) = staking.warmupInfo(address(depository));
|
||||||
|
assertEq(ghst.balanceOf(address(depository)), 0);
|
||||||
|
assertEq(payout, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user