From ef2adf6c07d53778e63385115f240aa0c3371cd0 Mon Sep 17 00:00:00 2001 From: tringuyenskymavis Date: Tue, 25 Jun 2024 11:26:53 +0700 Subject: [PATCH 1/3] chore: fix typo --- src/RNSCommission.sol | 4 ++-- src/interfaces/INSCommission.sol | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/RNSCommission.sol b/src/RNSCommission.sol index a2382d99..5b1aa4ef 100644 --- a/src/RNSCommission.sol +++ b/src/RNSCommission.sol @@ -12,9 +12,9 @@ contract RNSCommission is Initializable, AccessControlEnumerable, INSCommission /// @dev Role for accounts that can send RON for this contract. bytes32 public constant SENDER_ROLE = keccak256("SENDER_ROLE"); - /// @dev Gap for upgradability. + /// @dev Gap for upgradeability. uint256[50] private ____gap; - /// @dev Array of `Commission` structs that store commissions infomation. + /// @dev Array of `Commission` structs that store commissions information. Commission[] internal _commissionInfos; constructor() { diff --git a/src/interfaces/INSCommission.sol b/src/interfaces/INSCommission.sol index b52645c0..a9226f9c 100644 --- a/src/interfaces/INSCommission.sol +++ b/src/interfaces/INSCommission.sol @@ -14,7 +14,7 @@ interface INSCommission { event CommissionInfoUpdated( address indexed updatedBy, uint256 indexed commissionIdx, address payable newRecipient, string newName ); - /// @dev Emiited when transfer RON to commission's recipient. + /// @dev Emitted when transfer RON to commission's recipient. event Distributed(address indexed recipient, uint256 commissionAmount); /// @dev Revert when index is out of range @@ -35,7 +35,7 @@ interface INSCommission { function SENDER_ROLE() external pure returns (bytes32); /** - * @dev Returns comissions information. + * @dev Returns commissions information. */ function getCommissions() external view returns (Commission[] memory commissionInfos); From 127716f61727597110b6b6548d0dc861214c7ea3 Mon Sep 17 00:00:00 2001 From: tringuyenskymavis Date: Tue, 25 Jun 2024 14:29:25 +0700 Subject: [PATCH 2/3] chore: add null address error --- src/RNSCommission.sol | 3 +++ src/interfaces/INSCommission.sol | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/RNSCommission.sol b/src/RNSCommission.sol index 5b1aa4ef..0bd9102d 100644 --- a/src/RNSCommission.sol +++ b/src/RNSCommission.sol @@ -55,6 +55,7 @@ contract RNSCommission is Initializable, AccessControlEnumerable, INSCommission onlyRole(DEFAULT_ADMIN_ROLE) { if (commissionIdx >= _commissionInfos.length) revert InvalidArrayLength(); + if (newRecipient == address(0)) revert NullAddress(); _commissionInfos[commissionIdx].recipient = newRecipient; _commissionInfos[commissionIdx].name = newName; @@ -98,6 +99,8 @@ contract RNSCommission is Initializable, AccessControlEnumerable, INSCommission uint256 sum; for (uint256 i; i < length; ++i) { + if (commissionInfos[i].recipient == address(0)) revert NullAddress(); + sum += commissionInfos[i].ratio; _commissionInfos.push(commissionInfos[i]); } diff --git a/src/interfaces/INSCommission.sol b/src/interfaces/INSCommission.sol index a9226f9c..f13db5c8 100644 --- a/src/interfaces/INSCommission.sol +++ b/src/interfaces/INSCommission.sol @@ -23,6 +23,8 @@ interface INSCommission { error InvalidRatio(); /// @dev Revert when amount of RON is invalid error InvalidAmountOfRON(); + /// @dev Revert when recipient address is null + error NullAddress(); /** * @dev Maximum commission percentage. From 255b5ba810a318d7718145c05d2a8cc360f2b258 Mon Sep 17 00:00:00 2001 From: "tu-do.ron" Date: Tue, 25 Jun 2024 14:34:53 +0700 Subject: [PATCH 3/3] Update src/RNSCommission.sol --- src/RNSCommission.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/src/RNSCommission.sol b/src/RNSCommission.sol index 0bd9102d..3e1174fe 100644 --- a/src/RNSCommission.sol +++ b/src/RNSCommission.sol @@ -55,6 +55,7 @@ contract RNSCommission is Initializable, AccessControlEnumerable, INSCommission onlyRole(DEFAULT_ADMIN_ROLE) { if (commissionIdx >= _commissionInfos.length) revert InvalidArrayLength(); + // TODO: should fix to not duplicate logic in set commision info if (newRecipient == address(0)) revert NullAddress(); _commissionInfos[commissionIdx].recipient = newRecipient;