mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Add call warning into main docs and remove FAQ item
This commit is contained in:
parent
778b14de26
commit
eab9e58e7e
@ -54,18 +54,6 @@ Yes, you can use ``abi.encodePacked``::
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Why is the low-level function ``.call()`` less favorable than instantiating a contract with a variable (``ContractB b;``) and executing its functions (``b.doSomething();``)?
|
||||
=============================================================================================================================================================================
|
||||
|
||||
If you use actual functions, the compiler will tell you if the types
|
||||
or your arguments do not match, if the function does not exist
|
||||
or is not visible and it will do the packing of the
|
||||
arguments for you.
|
||||
|
||||
See `ping.sol <https://github.com/fivedogit/solidity-baby-steps/blob/master/contracts/45_ping.sol>`_ and
|
||||
`pong.sol <https://github.com/fivedogit/solidity-baby-steps/blob/master/contracts/45_pong.sol>`_.
|
||||
|
||||
What happens if you send ether along with a function call to a contract?
|
||||
========================================================================
|
||||
|
||||
|
@ -199,6 +199,10 @@ Members of Address Types
|
||||
|
||||
For more information, see the section on :ref:`address`.
|
||||
|
||||
.. warning::
|
||||
You should avoid using ``.call()`` when executing another contract function as it bypasses the compiler type checking,
|
||||
function existence check, and argument packing.
|
||||
|
||||
.. warning::
|
||||
There are some dangers in using ``send``: The transfer fails if the call stack depth is at 1024
|
||||
(this can always be forced by the caller) and it also fails if the recipient runs out of gas. So in order
|
||||
|
Loading…
Reference in New Issue
Block a user