Enhance documentation about usage of value and gas

People might look for information in the members section of the function types chapter.
This commit is contained in:
Mathias Baumann 2019-02-12 16:58:04 +01:00
parent f16c02b2ba
commit 8d3f0a16a3
2 changed files with 13 additions and 5 deletions

View File

@ -91,7 +91,7 @@ You need to use the modifier ``payable`` with the ``info`` function because
otherwise, the ``.value()`` option would not be available. otherwise, the ``.value()`` option would not be available.
.. warning:: .. 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. So in this case, the function is not called. 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. So in this case, the function is not called and the ``value`` and ``gas`` settings are lost.
Function calls cause exceptions if the called contract does not exist (in the 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 sense that the account does not contain code) or if the called contract itself

View File

@ -614,15 +614,23 @@ just use ``f``, if you want to use its external form, use ``this.f``.
Members: Members:
Public (or external) functions also have a special member called ``selector``, Public (or external) functions have the following members:
which returns the :ref:`ABI function selector <abi_function_selector>`::
* ``.selector`` returns the :ref:`ABI function selector <abi_function_selector>`
* ``.gas(uint)`` returns a callable function object which, when called, will send the specified amount of gas to the target function. See :ref:`External Function Calls <external-function-calls>` for more information.
* ``.value(uint)`` returns a callable function object which, when called, will send the specified amount of wei to the target function. See :ref:`External Function Calls <external-function-calls>` for more information.
Example that shows how to use the members::
pragma solidity >=0.4.16 <0.6.0; pragma solidity >=0.4.16 <0.6.0;
contract Selector { contract Example {
function f() public pure returns (bytes4) { function f() public payable returns (bytes4) {
return this.f.selector; return this.f.selector;
} }
function g() public {
this.f.gas(10).value(800)();
}
} }
Example that shows how to use internal function types:: Example that shows how to use internal function types::