isvesting flag for withdrawstakes
This commit is contained in:
@@ -512,17 +512,19 @@ contract CunaFinanceBsc is Initializable, ReentrancyGuardUpgradeable {
|
||||
/// @param amount The amount for the withdraw stake
|
||||
/// @param unlockTime The unlock timestamp for the withdraw stake
|
||||
/// @param token The token address for the withdraw stake
|
||||
function createWithdrawStakeForUser(address user, uint256 amount, uint256 unlockTime, address token) external onlyBot {
|
||||
/// @param isVesting Whether this is a vesting-related stake (adds 1e6 to stakeId)
|
||||
function createWithdrawStakeForUser(address user, uint256 amount, uint256 unlockTime, address token, bool isVesting) external onlyBot {
|
||||
require(user != address(0), "Invalid user address");
|
||||
require(amount > 0, "Invalid amount");
|
||||
require(token != address(0), "Invalid token address");
|
||||
|
||||
// Generate unique stakeId
|
||||
stakeIdCounter++;
|
||||
uint256 finalStakeId = isVesting ? stakeIdCounter + 1e6 : stakeIdCounter;
|
||||
|
||||
// Create the withdraw stake
|
||||
withdrawStakes[user].push(WithdrawStake({
|
||||
stakeId: stakeIdCounter,
|
||||
stakeId: finalStakeId,
|
||||
amount: amount,
|
||||
unlockTime: unlockTime,
|
||||
token: token
|
||||
@@ -531,7 +533,7 @@ contract CunaFinanceBsc is Initializable, ReentrancyGuardUpgradeable {
|
||||
// Increment withdraw liabilities for this token
|
||||
withdrawLiabilities[token] += amount;
|
||||
|
||||
emit StakeWithdrawn(user, amount, stakeIdCounter);
|
||||
emit StakeWithdrawn(user, amount, finalStakeId);
|
||||
}
|
||||
|
||||
/// @notice Batch create stakes for multiple users (efficient for migration)
|
||||
@@ -542,14 +544,12 @@ contract CunaFinanceBsc is Initializable, ReentrancyGuardUpgradeable {
|
||||
require(users.length == amounts.length, "Array length mismatch");
|
||||
require(users.length > 0, "Empty arrays");
|
||||
|
||||
uint256 totalAdded = 0;
|
||||
|
||||
for (uint256 i = 0; i < users.length; i++) {
|
||||
require(users[i] != address(0), "Invalid address");
|
||||
require(amounts[i] > 0, "Invalid amount");
|
||||
|
||||
// Update accounting
|
||||
totalAdded = totalAdded - userBigStake[users[i]] + amounts[i];
|
||||
// Update totalBigStakes directly (subtract old, add new)
|
||||
totalBigStakes = totalBigStakes - userBigStake[users[i]] + amounts[i];
|
||||
|
||||
// Set original stake only if this is the first time (never changes after)
|
||||
if (userOriginalStake[users[i]] == 0) {
|
||||
@@ -561,9 +561,6 @@ contract CunaFinanceBsc is Initializable, ReentrancyGuardUpgradeable {
|
||||
|
||||
emit StakeCreated(users[i], amounts[i]);
|
||||
}
|
||||
|
||||
// Update total stakes
|
||||
totalBigStakes += totalAdded;
|
||||
}
|
||||
|
||||
// Additional View Functions
|
||||
|
||||
Reference in New Issue
Block a user