From edbb84429320aeccdd8fa51794edd7164c95469f Mon Sep 17 00:00:00 2001 From: hectiik Date: Thu, 4 Sep 2025 15:11:08 -0400 Subject: [PATCH 1/3] Feat: Add Internal Func Natspec Section Comment --- src/FactoryTokenContractV2.sol | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/FactoryTokenContractV2.sol b/src/FactoryTokenContractV2.sol index 0388bb3..d49f6c7 100644 --- a/src/FactoryTokenContractV2.sol +++ b/src/FactoryTokenContractV2.sol @@ -477,4 +477,8 @@ contract FactoryTokenContractV2 is Ownable, ReentrancyGuard, Pausable { function pause() external onlyOwner { _pause(); } + + //////////////////// + // Internal Functions // + //////////////////// } From d74972ae0fb06c3b25971664d028650d3324e711 Mon Sep 17 00:00:00 2001 From: hectiik Date: Thu, 4 Sep 2025 15:12:14 -0400 Subject: [PATCH 2/3] Feat: Add _validateTokenParameters Internal Pure Func --- src/FactoryTokenContractV2.sol | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/FactoryTokenContractV2.sol b/src/FactoryTokenContractV2.sol index d49f6c7..e6da4ad 100644 --- a/src/FactoryTokenContractV2.sol +++ b/src/FactoryTokenContractV2.sol @@ -481,4 +481,54 @@ contract FactoryTokenContractV2 is Ownable, ReentrancyGuard, Pausable { //////////////////// // Internal Functions // //////////////////// + + function _validateTokenParameters( + address[] memory _signers, + string memory _tokenName, + string memory _tokenSymbol, + uint256 _totalSupply, + uint256 _maxSupply, + bool _supplyCapEnabled, + string memory _ipfsHash + ) internal pure { + // Validate signers + if (_signers.length < MIN_SIGNERS || _signers.length > MAX_SIGNERS) { + revert FactoryTokenContract__InvalidSignerCount(); + } + + // Check for duplicate signers + for (uint256 i = 0; i < _signers.length; i++) { + if (_signers[i] == address(0)) { + revert FactoryTokenContract__InvalidAddress(); + } + for (uint256 j = i + 1; j < _signers.length; j++) { + if (_signers[i] == _signers[j]) { + revert FactoryTokenContract__DuplicateSigner(); + } + } + } + + // Validate token parameters + if (bytes(_tokenName).length == 0) { + revert FactoryTokenContract__EmptyName(); + } + if (bytes(_tokenName).length > MAX_NAME_LENGTH) { + revert FactoryTokenContract__NameTooLong(); + } + if (bytes(_tokenSymbol).length == 0) { + revert FactoryTokenContract__EmptySymbol(); + } + if (bytes(_tokenSymbol).length > MAX_SYMBOL_LENGTH) { + revert FactoryTokenContract__SymbolTooLong(); + } + if (_totalSupply == 0 || _totalSupply > MAX_TOTAL_SUPPLY) { + revert FactoryTokenContract__InvalidSupply(); + } + if (_supplyCapEnabled && _maxSupply < _totalSupply) { + revert FactoryTokenContract__InvalidSupply(); + } + if (bytes(_ipfsHash).length == 0) { + revert FactoryTokenContract__InvalidIPFSHash(); + } + } } From 2d857e573b29e270435c17464a0be6022542fe4e Mon Sep 17 00:00:00 2001 From: hectiik Date: Thu, 4 Sep 2025 15:12:40 -0400 Subject: [PATCH 3/3] Feat: Add _validateTokenParameters Internal Pure Func Natspec Comment --- src/FactoryTokenContractV2.sol | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/FactoryTokenContractV2.sol b/src/FactoryTokenContractV2.sol index e6da4ad..5902a07 100644 --- a/src/FactoryTokenContractV2.sol +++ b/src/FactoryTokenContractV2.sol @@ -482,6 +482,9 @@ contract FactoryTokenContractV2 is Ownable, ReentrancyGuard, Pausable { // Internal Functions // //////////////////// + /** + * @notice Validate token creation parameters + */ function _validateTokenParameters( address[] memory _signers, string memory _tokenName,