Skip to content

Commit 62509fb

Browse files
authored
fix(RNSCommission): fix typo and revert if commission recipient is null (#248)
2 parents e6cf4d4 + 17bedad commit 62509fb

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/RNSCommission.sol

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ contract RNSCommission is Initializable, AccessControlEnumerable, INSCommission
1212
/// @dev Role for accounts that can send RON for this contract.
1313
bytes32 public constant SENDER_ROLE = keccak256("SENDER_ROLE");
1414

15-
/// @dev Gap for upgradability.
15+
/// @dev Gap for upgradeability.
1616
uint256[50] private ____gap;
17-
/// @dev Array of `Commission` structs that store commissions infomation.
17+
/// @dev Array of `Commission` structs that store commissions information.
1818
Commission[] internal _commissionInfos;
1919

2020
constructor() {
@@ -55,6 +55,8 @@ contract RNSCommission is Initializable, AccessControlEnumerable, INSCommission
5555
onlyRole(DEFAULT_ADMIN_ROLE)
5656
{
5757
if (commissionIdx >= _commissionInfos.length) revert InvalidArrayLength();
58+
// TODO: should fix to not duplicate logic in set commision info
59+
if (newRecipient == address(0)) revert NullAddress();
5860

5961
_commissionInfos[commissionIdx].recipient = newRecipient;
6062
_commissionInfos[commissionIdx].name = newName;
@@ -98,6 +100,8 @@ contract RNSCommission is Initializable, AccessControlEnumerable, INSCommission
98100
uint256 sum;
99101

100102
for (uint256 i; i < length; ++i) {
103+
if (commissionInfos[i].recipient == address(0)) revert NullAddress();
104+
101105
sum += commissionInfos[i].ratio;
102106
_commissionInfos.push(commissionInfos[i]);
103107
}

src/interfaces/INSCommission.sol

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ interface INSCommission {
1414
event CommissionInfoUpdated(
1515
address indexed updatedBy, uint256 indexed commissionIdx, address payable newRecipient, string newName
1616
);
17-
/// @dev Emiited when transfer RON to commission's recipient.
17+
/// @dev Emitted when transfer RON to commission's recipient.
1818
event Distributed(address indexed recipient, uint256 commissionAmount);
1919

2020
/// @dev Revert when index is out of range
@@ -23,6 +23,8 @@ interface INSCommission {
2323
error InvalidRatio();
2424
/// @dev Revert when amount of RON is invalid
2525
error InvalidAmountOfRON();
26+
/// @dev Revert when recipient address is null
27+
error NullAddress();
2628

2729
/**
2830
* @dev Maximum commission percentage.
@@ -35,7 +37,7 @@ interface INSCommission {
3537
function SENDER_ROLE() external pure returns (bytes32);
3638

3739
/**
38-
* @dev Returns comissions information.
40+
* @dev Returns commissions information.
3941
*/
4042
function getCommissions() external view returns (Commission[] memory commissionInfos);
4143

0 commit comments

Comments
 (0)