aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-09-06 03:49:04 +0800
committerGitHub <noreply@github.com>2018-09-06 03:49:04 +0800
commitdec57859097dd3183236ff6358559c76f2aac7f0 (patch)
tree107795b85ffb026da3b08734b29613e1e1a0765f
parent522174890f9a376f7b192014774fb2f6d3280356 (diff)
parent7fc496b6ab23dd73f4ea7b1816ada21ec73ff254 (diff)
downloaddexon-solidity-dec57859097dd3183236ff6358559c76f2aac7f0.tar
dexon-solidity-dec57859097dd3183236ff6358559c76f2aac7f0.tar.gz
dexon-solidity-dec57859097dd3183236ff6358559c76f2aac7f0.tar.bz2
dexon-solidity-dec57859097dd3183236ff6358559c76f2aac7f0.tar.lz
dexon-solidity-dec57859097dd3183236ff6358559c76f2aac7f0.tar.xz
dexon-solidity-dec57859097dd3183236ff6358559c76f2aac7f0.tar.zst
dexon-solidity-dec57859097dd3183236ff6358559c76f2aac7f0.zip
Merge pull request #4846 from ethereum/docs-4574-infofeed
Update Infofeed example code and explanation
-rw-r--r--docs/control-structures.rst18
1 files changed, 5 insertions, 13 deletions
diff --git a/docs/control-structures.rst b/docs/control-structures.rst
index d0e58908..5810aaa7 100644
--- a/docs/control-structures.rst
+++ b/docs/control-structures.rst
@@ -135,23 +135,15 @@ the gas can be specified with special options ``.value()`` and ``.gas()``, respe
contract Consumer {
InfoFeed feed;
- function setFeed(address addr) public { feed = InfoFeed(addr); }
+ function setFeed(InfoFeed addr) public { feed = addr; }
function callFeed() public { feed.info.value(10).gas(800)(); }
}
-The modifier ``payable`` has to be used for ``info``, because otherwise, the `.value()`
-option would not be available.
+You need to use the modifier ``payable`` with the ``info`` function because
+otherwise, the ``.value()`` option would not be available.
-Note that the expression ``InfoFeed(addr)`` performs an explicit type conversion stating
-that "we know that the type of the contract at the given address is ``InfoFeed``" and
-this does not execute a constructor. Explicit type conversions have to be
-handled with extreme caution. Never call a function on a contract where you
-are not sure about its type.
-
-We could also have used ``function setFeed(InfoFeed _feed) { feed = _feed; }`` directly.
-Be careful about the fact that ``feed.info.value(10).gas(800)``
-only (locally) sets the value and amount of gas sent with the function call and only the
-parentheses at the end perform the actual call.
+.. warning::
+ Be careful that ``feed.info.value(10).gas(800)`` only locally sets the ``value`` and amount of ``gas`` sent with the function call, and the parentheses at the end perform the actual call.
Function calls cause exceptions if the called contract does not exist (in the
sense that the account does not contain code) or if the called contract itself