The calculation  formula of the developer part in the `NukeFund::receive` function, will be wrong for certain values of `NukeFund::taxCut` variable,  leading to a misallocation of funds between the various parties.
Audit: 2024-07-traitforge-findings
Severity: HIGH

# Lines of code

https://github.com/code-423n4/2024-07-traitforge/blob/279b2887e3d38bc219a05d332cbcb0655b2dc644/contracts/NukeFund/NukeFund.sol#L41


# Vulnerability details

## Description
At present, when the value of the variable `NukeFund::taxCut` is 10, the formula is correct. But when the variable is different from 10, the formula will no longer be valid and we will have an erroneous distribution of funds.

```solidity
  receive() external payable {
 -  uint256 devShare = msg.value / taxCut; // Calculate developer"s share (10%)
 +  uint256 devShare = (msg.value * taxCut) / 100; // Calculate developer"s share (taxCut%)
    uint256 remainingFund = msg.value - devShare; // Calculate remaining funds to add to the fund

    fund += remainingFund; // Update the fund balance

    if (!airdropContract.airdropStarted()) {
      (bool success, ) = devAddress.call{ value: devShare }("");
      require(success, "ETH send failed");
      emit DevShareDistributed(devShare);
    } else if (!airdropContract.daoFundAllowed()) {
      (bool success, ) = payable(owner()).call{ value: devShare }("");
      require(success, "ETH send failed");
    } else {
      (bool success, ) = daoAddress.call{ value: devShare }("");
      require(success, "ETH send failed");
      emit DevShareDistributed(devShare);
    }

    emit FundReceived(msg.sender, msg.value); // Log the received funds
    emit FundBalanceUpdated(fund); // Update the fund balance
  }
```

## Impact

the  developer"s share will be great than what the protocol expect; and the the fund to add to the protocol will be less than what is expected.The funds are poorly distributed between the developers and the protocol.

## Proof of Concept
The developer"s share is 10% of the `msg.value`, which in the code corresponds to: The developer"s share is `NukeFund::taxCut`% of the `msg.value`.
https://github.com/TraitForge/docs/blob/main/user-actions/nuking.md#how-to-nuke-an-entity

## Tools Used

Manual review

## Recommended Mitigation Steps

Edit the `devShare` calculation like follow:

```diff
  receive() external payable {
-   uint256 devShare = msg.value / taxCut; // Calculate developer"s share (10%)
+   uint256 devShare = (msg.value * taxCut) / 100; // Calculate developer"s share (10%)
    uint256 remainingFund = msg.value - devShare; // Calculate remaining funds to add to the fund

    fund += remainingFund; // Update the fund balance

    if (!airdropContract.airdropStarted()) {
      (bool success, ) = devAddress.call{ value: devShare }("");
      require(success, "ETH send failed");
      emit DevShareDistributed(devShare);
    } else if (!airdropContract.daoFundAllowed()) {
      (bool success, ) = payable(owner()).call{ value: devShare }("");
      require(success, "ETH send failed");
    } else {
      (bool success, ) = daoAddress.call{ value: devShare }("");
      require(success, "ETH send failed");
      emit DevShareDistributed(devShare);
    }

    emit FundReceived(msg.sender, msg.value); // Lo