Inactivity Burn Functions
Time-based threshold (15 days of inactivity):
// ```solidity
function burnInactiveAddress(address[] calldata _addrs) external returns (bool) {
require(_addrs.length > 0, "empty arr");
uint256 arrLength = _addrs.length;
for (uint256 i; i < arrLength; ) {
address addr = _addrs[i];
if (addr != address(0) && !isContract(addr)) {
uint256 lastActive = lastTXtime[addr];
if (lastActive != 0) {
uint256 inactivityTime = block.timestamp - lastActive;
if (inactivityTime > 15 days) {
uint256 burnAmount = balanceOf[addr] * inactive_burn / (10**decimals); // 50%
_burn(addr, burnAmount);
}
if (inactivityTime > 30 days) {
_burn(addr, balanceOf[addr]); // 100%
}
}
}
unchecked { ++i; }
}
return true;
}
```
A similar function exists for contracts. These can be called by the owner and integrated into the dApp for community triggers.
Last updated