Files

23 lines
585 B
Solidity

// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity ^0.8.0;
library ArrayLib {
function removeAll(address[] memory inputs, address removed) internal pure returns (address[] memory result) {
result = new address[](inputs.length);
uint256 nbAddresses;
for (uint256 i; i < inputs.length; ++i) {
address input = inputs[i];
if (input != removed) {
result[nbAddresses] = input;
++nbAddresses;
}
}
assembly {
mstore(result, nbAddresses)
}
}
}