diff --git a/src/modules/logicModule/abstracts/ERC20PaymentClientBase_v1.sol b/src/modules/logicModule/abstracts/ERC20PaymentClientBase_v1.sol index f32a2c541..2ae69f08a 100644 --- a/src/modules/logicModule/abstracts/ERC20PaymentClientBase_v1.sol +++ b/src/modules/logicModule/abstracts/ERC20PaymentClientBase_v1.sol @@ -106,11 +106,7 @@ abstract contract ERC20PaymentClientBase_v1 is internal onlyInitializing { - uint amountOfFlags = flags_.length; - if (amountOfFlags > type(uint8).max) { - revert Module__ERC20PaymentClientBase_v1__FlagAmountTooHigh(); - } - _setFlags(uint8(flags_.length), flags_); + _setFlags(flags_); } /// @dev Adds a new {PaymentOrder} to the list of outstanding orders. @@ -149,28 +145,23 @@ abstract contract ERC20PaymentClientBase_v1 is } /// @dev Sets the flags for the PaymentOrders. - /// @param flagCount_ The number of flags. /// @param flags_ The flags, represented as an array of uint8 containing /// the flag IDs between 0 and 255. - function _setFlags(uint8 flagCount_, uint8[] memory flags_) - internal - virtual - { - if (flagCount_ != flags_.length) { - revert - Module__ERC20PaymentClientBase__MismatchBetweenFlagCountAndArrayLength( - flagCount_, flags_.length - ); + function _setFlags(uint8[] memory flags_) internal virtual { + uint amountOfFlags = flags_.length; + + if (amountOfFlags > type(uint8).max) { + revert Module__ERC20PaymentClientBase_v1__FlagAmountTooHigh(); } - _flagCount = flagCount_; + _flagCount = uint8(amountOfFlags); _flags = 0; - for (uint8 i = 0; i < flagCount_; i++) { + for (uint8 i = 0; i < amountOfFlags; i++) { _flags |= bytes32((1 << flags_[i])); } - emit FlagsSet(flagCount_, _flags); + emit FlagsSet(_flagCount, _flags); } //-------------------------------------------------------------------------- diff --git a/test/modules/logicModule/paymentClient/ERCPaymentClientBase_v1.t.sol b/test/modules/logicModule/paymentClient/ERCPaymentClientBase_v1.t.sol index 2f37f4641..91220af29 100644 --- a/test/modules/logicModule/paymentClient/ERCPaymentClientBase_v1.t.sol +++ b/test/modules/logicModule/paymentClient/ERCPaymentClientBase_v1.t.sol @@ -487,7 +487,7 @@ contract ERC20PaymentClientBaseV1Test is ModuleTest { flags[i] = uint8(i); } - paymentClient.exposed_setFlags(flagCount_, flags); + paymentClient.exposed_setFlags(flags); assertEq(paymentClient.getFlagCount(), flagCount_); assertEq( diff --git a/test/utils/mocks/modules/paymentClient/ERC20PaymentClientBaseV1AccessMock.sol b/test/utils/mocks/modules/paymentClient/ERC20PaymentClientBaseV1AccessMock.sol index cb94c1703..5a2154b24 100644 --- a/test/utils/mocks/modules/paymentClient/ERC20PaymentClientBaseV1AccessMock.sol +++ b/test/utils/mocks/modules/paymentClient/ERC20PaymentClientBaseV1AccessMock.sol @@ -89,10 +89,8 @@ contract ERC20PaymentClientBaseV1AccessMock is ERC20PaymentClientBase_v1 { _outstandingTokenAmounts[token] = amount; } - function exposed_setFlags(uint8 flagCount_, uint8[] memory flags_) - external - { - _setFlags(flagCount_, flags_); + function exposed_setFlags(uint8[] memory flags_) external { + _setFlags(flags_); } function exposed_assemblePaymentConfig(bytes32[] memory flagValues_)