Address

Git Source

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 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:

  • target must be a contract.
  • calling target with data must 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);