aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorChris Chinchilla <chriswhward@gmail.com>2019-01-17 17:31:46 +0800
committerGitHub <noreply@github.com>2019-01-17 17:31:46 +0800
commit72c2100164c0dd86f55449492848f7df0fd883fe (patch)
treea7caac149cdee90bc25d194a343687f256e44629 /docs
parent6841d78896b96fddb29be4acd49a27b5b3594374 (diff)
parent5279f9f03bdcaafaeaadb20121f8cab550b2ed9e (diff)
downloaddexon-solidity-72c2100164c0dd86f55449492848f7df0fd883fe.tar.gz
dexon-solidity-72c2100164c0dd86f55449492848f7df0fd883fe.tar.zst
dexon-solidity-72c2100164c0dd86f55449492848f7df0fd883fe.zip
Merge pull request #5800 from ethereum/wip/faq-call
[DOCS] Add call warning into main docs and remove FAQ item
Diffstat (limited to 'docs')
-rw-r--r--docs/frequently-asked-questions.rst12
-rw-r--r--docs/units-and-global-variables.rst4
2 files changed, 4 insertions, 12 deletions
diff --git a/docs/frequently-asked-questions.rst b/docs/frequently-asked-questions.rst
index 71636735..ff2f1fac 100644
--- a/docs/frequently-asked-questions.rst
+++ b/docs/frequently-asked-questions.rst
@@ -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?
========================================================================
diff --git a/docs/units-and-global-variables.rst b/docs/units-and-global-variables.rst
index 59acfcff..c47f257b 100644
--- a/docs/units-and-global-variables.rst
+++ b/docs/units-and-global-variables.rst
@@ -200,6 +200,10 @@ Members of Address Types
For more information, see the section on :ref:`address`.
.. warning::
+ You should avoid using ``.call()`` whenever possible when executing another contract function as it bypasses 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
to make safe Ether transfers, always check the return value of ``send``, use ``transfer`` or even better: