Category: Business Logic
Usage of msg.sender.transfer() function
Informational Impact
Informational Severity
N/A Likelihood
Description
The pullFees calls the transfer function to send the full contract balance of Ether to the msg.sender account.
Impact
The transfer function uses a hardcoded amount of GAS and will fail if GAS costs increase in the future, so it is no longer recommended for use.
Recommendations
As best practice↗, consider using the msg.sender.call.value(value)("") function:
(bool success, ) = msg.sender.call.value(amounts[1].sub(feeAmount))("");
require(success, "Transfer failed.");Remediation
This issue has been acknowledged by Liquid Labs, Inc., and a fix was implemented in commit 06303e34↗.
Liquid Labs, Inc. provided the following response:
This commit uses a call to pull eth fees from the launchpad instead of transfer to prevent out of gas exceptions