personal API documented

This commit is contained in:
Piper Merriam 2016-09-07 13:33:00 -06:00
parent 5c69bbc333
commit dd7b3c78e4
7 changed files with 136 additions and 19 deletions

View File

@ -15,7 +15,7 @@ Contents
quickstart
overview
conventions
web3
web3.main
web3.eth
web3.db
web3.shh

View File

@ -1,7 +0,0 @@
DB API
======
.. py:class:: DB
The ``web3.db`` object exposes methods to interact with the RPC APIs under the
``db_`` namespace.

View File

@ -1,6 +1,9 @@
Eth API
=======
.. py:module:: web3.eth
.. py:currentmodule:: web3.eth
.. py:class:: Eth
The ``web3.eth`` object exposes the following properties and methods to
@ -10,7 +13,7 @@ interact with the RPC APIs under the ``eth_`` namespace.
Properties
----------
The following properties are available on the ``web3.eth`` object.
The following properties are available on the ``web3.eth`` namespace.
.. py:attribute:: Eth.defaultAccount
@ -119,7 +122,7 @@ The following properties are available on the ``web3.eth`` object.
Methods
-------
The following methods are available on the ``web3.eth`` object.
The following methods are available on the ``web3.eth`` namespace.
.. py:method:: Eth.getBalance(account, block_identifier=eth.defaultBlock)
@ -225,7 +228,7 @@ The following methods are available on the ``web3.eth`` object.
.. py:method:: Eth.getUncle(block_identifier)
.. attention:: Not Implemented
.. note:: Not Implemented
.. py:method:: Eth.getTransaction(transaction_hash)

View File

@ -124,10 +124,6 @@ Each ``web3`` instance also exposes these namespaced APIs.
See :doc:`./web3.eth`
.. py:attribute:: Web3.db
See :doc:`./web3.db`
.. py:attribute:: Web3.shh
See :doc:`./web3.shh`

View File

@ -1,7 +1,101 @@
Personal API
============
.. py:class:: DB
.. py:module:: web3.personal
.. py:class:: Personal
The ``web3.personal`` object exposes methods to interact with the RPC APIs
under the ``personal_`` namespace.
Properties
----------
The following properties are available on the ``web3.personal`` namespace.
.. py:attribute:: listAccounts
* Delegates to ``personal_listAccounts`` RPC Method
Returns the list of known accounts.
.. code-block:: python
>>> web3.personal.listAccounts
['0xd3cda913deb6f67967b99d67acdfa1712c293601']
Methods
-------
The following methods are available on the ``web3.personal`` namespace.
.. py:method:: importRawKey(self, private_key, passphrase)
* Delegates to ``personal_importRawKey`` RPC Method
Adds the given ``private_key`` to the node's keychain, encrypted with the
given ``passphrase``. Returns the address of the imported account.
.. code-block:: python
>>> web3.personal.importRawKey(some_private_key, 'the-passphrase')
['0xd3cda913deb6f67967b99d67acdfa1712c293601']
.. py:method:: newAccount(self, password=None)
* Delegates to ``personal_newAccount`` RPC Method
Generates a new account in the node's keychain encrypted with the
given ``passphrase``. Returns the address of the created account.
.. code-block:: python
>>> web3.personal.newAccount('the-passphrase')
['0xd3cda913deb6f67967b99d67acdfa1712c293601']
.. py:method:: signAndSendTransaction(self, tx, passphrase)
* Delegates to ``personal_signAndSendTransaction`` RPC Method
Signs and sends the given ``transaction`` without requiring the ``from``
account to be unlocked. ``passphrase`` must be the passphrase for the
``from`` account for the provided ``transaction``.
Behaves in the same manner as
:py:method::`web3.eth.Eth.sendTransaction(transaction)`.
.. code-block:: python
>>> web3.personal.signAndSendTransaction({'to': '0xd3cda913deb6f67967b99d67acdfa1712c293601', 'from': web3.eth.coinbase, 'value': 12345}, 'the-passphrase')
'0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331'
.. py:method:: lockAccount(self, account)
* Delegates to ``personal_lockAccount`` RPC Method
Locks the given ``account``.
.. code-block:: python
>>> web3.personal.lockAccount('0xd3cda913deb6f67967b99d67acdfa1712c293601')
.. py:method:: unlockAccount(self, account, passphrase, duration=None)
* Delegates to ``personal_unlockAccount`` RPC Method
Unlocks the given ``account`` for ``duration`` seconds. If ``duration`` is
``None`` then the account will remain unlocked indefinitely. Returns
boolean as to whether the account was successfully unlocked.
.. code-block:: python
>>> web3.personal.unlockAccount('0xd3cda913deb6f67967b99d67acdfa1712c293601', 'wrong-passphrase')
False
>>> web3.personal.unlockAccount('0xd3cda913deb6f67967b99d67acdfa1712c293601', 'the-passphrase')
True

View File

@ -1,7 +1,38 @@
SHH API
=======
.. py:class:: DB
.. py:module:: web3.shh
.. py:class:: Shh
The ``web3.shh`` object exposes methods to interact with the RPC APIs under the
``shh_`` namespace.
Methods
-------
The following methods are available on the ``web3.personal`` namespace.
.. py:method:: Shh.post(self, *args, **kwargs)
.. note:: Not Implemented
.. py:method:: Shh.newIdentity(self, *args, **kwargs)
.. note:: Not Implemented
.. py:method:: Shh.hasIdentity(self, *args, **kwargs)
.. note:: Not Implemented
.. py:method:: Shh.newGroup(self, *args, **kwargs)
.. note:: Not Implemented
.. py:method:: Shh.addToGroup(self, *args, **kwargs)
.. note:: Not Implemented

View File

@ -49,11 +49,11 @@ class Personal(object):
def getListAccounts(self, *args, **kwargs):
raise NotImplementedError("Async calling has not been implemented")
def signAndSendTransaction(self, tx, passphrase):
def signAndSendTransaction(self, transaction, passphrase):
return self.request_manager.request_blocking(
# "personal_sendTransaction",
"personal_signAndSendTransaction",
[tx, passphrase],
[transaction, passphrase],
)
def lockAccount(self, account):