diff --git a/contracts/utils/contracts/src/LibAddressArray.sol b/contracts/utils/contracts/src/LibAddressArray.sol index aa3ef27dfb..75ee5b2fb1 100644 --- a/contracts/utils/contracts/src/LibAddressArray.sol +++ b/contracts/utils/contracts/src/LibAddressArray.sol @@ -30,7 +30,8 @@ library LibAddressArray { /// @param addressToAppend Address to append. /// @return Array of addresses: [... addressArray, addressToAppend] function append(address[] memory addressArray, address addressToAppend) - internal pure + internal + pure returns (address[] memory) { // Get stats on address array and free memory @@ -81,4 +82,18 @@ library LibAddressArray { addressArray[addressArrayLength - 1] = addressToAppend; return addressArray; } + + function indexOf(address[] memory addressArray, address target) + internal + pure + returns (bool, uint256) + { + uint256 length = addressArray.length; + for (uint256 i = 0; i < length; i++) { + if (addressArray[i] == target) { + return (true, i); + } + } + return (false, 0); + } }