Address
Functions
isContract
*Returns true if account is a contract.
[IMPORTANT]
It is unsafe to assume that an address for which this function returns
false is an externally-owned account (EOA) and not a contract.
Among others, isContract will return false for the following
types of addresses:
- an externally-owned account
- a contract in construction
- an address where a contract will be created
- an address where a contract lived, but was destroyed ====*
function isContract(address account) internal view returns (bool);
sendValue
Replacement for Solidity's transfer: sends amount wei to
recipient, forwarding all available gas and reverting on errors.
https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
of certain opcodes, possibly making contracts go over the 2300 gas limit
imposed by transfer, making them unable to receive funds via
transfer. sendValue removes this limitation.
https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
IMPORTANT: because control is transferred to recipient, care must be
taken to not create reentrancy vulnerabilities. Consider using
{ReentrancyGuard} or the
https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
function sendValue(address payable recipient, uint256 amount) internal;
functionCall
*Performs a Solidity function call using a low level call. A
plaincall is an unsafe replacement for a function call: use this
function instead.
If target reverts with a revert reason, it is bubbled up by this
function (like regular_old Solidity function calls).
Returns the raw returned data. To convert to the expected return value,
use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[abi.decode].
Requirements:
targetmust be a contract.- calling
targetwithdatamust not revert. Available since v3.1.*
function functionCall(address target, bytes memory data) internal returns (bytes memory);
functionCall
Same as functionCall, but with
errorMessage as a fallback revert reason when target reverts.
Available since v3.1.
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory);
functionCallWithValue
*Same as functionCall,
but also transferring value wei to target.
Requirements:
- the calling contract must have an ETH balance of at least
value. - the called Solidity function must be
payable. Available since v3.1.*
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory);
functionCallWithValue
Same as functionCallWithValue, but
with errorMessage as a fallback revert reason when target reverts.
Available since v3.1.
function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage)
internal
returns (bytes memory);
_functionCallWithValue
function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage)
private
returns (bytes memory);
functionStaticCall
Same as functionCall,
but performing a static call.
Available since v3.3.
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory);
functionStaticCall
Same as functionCall,
but performing a static call.
Available since v3.3.
function functionStaticCall(address target, bytes memory data, string memory errorMessage)
internal
view
returns (bytes memory);
functionDelegateCall
Same as functionCall,
but performing a delegate call.
Available since v3.3.
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory);
functionDelegateCall
Same as functionCall,
but performing a delegate call.
Available since v3.3.
function functionDelegateCall(address target, bytes memory data, string memory errorMessage)
internal
returns (bytes memory);
_verifyCallResult
function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage)
private
pure
returns (bytes memory);
addressToString
function addressToString(address _address) internal pure returns (string memory);