web3.py/docs/web3.personal.rst
2016-09-07 14:14:49 -06:00

102 lines
2.9 KiB
ReStructuredText

Personal API
============
.. 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