From 6637f5ca7d0adef333706479c67ceacdec7465e9 Mon Sep 17 00:00:00 2001 From: Holger Nahrstaedt <holger@nahrstaedt.de> Date: Thu, 22 Feb 2018 11:17:40 +0100 Subject: [PATCH] Improve doc Apply fix #42 and #41 from https://github.com/xeroc/python-bitshares --- .travis.yml | 12 ++- Makefile | 4 + README.rst | 11 ++ beem/account.py | 52 +-------- beem/amount.py | 12 ++- beem/blockchain.py | 21 ++++ beem/instance.py | 10 ++ beem/memo.py | 91 ++++++++++++++++ beem/notify.py | 30 +++--- beem/transactionbuilder.py | 17 +++ beem/vote.py | 5 + beem/wallet.py | 42 ++++++++ beem/witness.py | 5 + beemapi/steemnoderpc.py | 4 + beemapi/websocket.py | 42 ++++++-- docs/account.rst | 17 --- docs/amount.rst | 19 ---- docs/asset.rst | 5 - docs/beem.account.rst | 7 ++ docs/beem.aes.rst | 7 ++ docs/beem.amount.rst | 7 ++ docs/beem.asset.rst | 7 ++ docs/beem.block.rst | 7 ++ docs/beem.blockchain.rst | 7 ++ docs/beem.comment.rst | 7 ++ docs/beem.exceptions.rst | 7 ++ docs/beem.instances.rst | 7 ++ docs/beem.market.rst | 7 ++ docs/beem.memo.rst | 7 ++ docs/beem.message.rst | 7 ++ docs/beem.notify.rst | 7 ++ docs/beem.price.rst | 7 ++ docs/beem.rst | 38 +++++++ docs/beem.steem.rst | 7 ++ docs/beem.storage.rst | 7 ++ docs/beem.transactionbuilder.rst | 7 ++ docs/beem.utils.rst | 7 ++ docs/beem.vote.rst | 7 ++ docs/beem.wallet.rst | 7 ++ docs/beem.witness.rst | 8 ++ docs/beemapi.exceptions.rst | 7 ++ docs/beemapi.rst | 19 ++++ ...socketrpc.rst => beemapi.steemnoderpc.rst} | 0 docs/{websocket.rst => beemapi.websocket.rst} | 0 docs/beembase.account.rst | 7 ++ docs/beembase.bip38.rst | 7 ++ docs/beembase.chains.rst | 7 ++ docs/beembase.memo.rst | 7 ++ docs/beembase.objects.rst | 7 ++ docs/beembase.objecttypes.rst | 7 ++ docs/beembase.operationids.rst | 7 ++ docs/beembase.operations.rst | 7 ++ docs/beembase.rst | 26 +++++ docs/beembase.signedtransations.rst | 7 ++ docs/beembase.transactions.rst | 7 ++ docs/block.rst | 13 --- docs/blockchain.rst | 33 ------ docs/comment.rst | 13 --- docs/exceptions.rst | 8 -- docs/index.rst | 61 ++++++----- docs/instances.rst | 16 --- docs/market.rst | 5 - docs/memo.rst | 100 ------------------ docs/modules.rst | 9 ++ docs/notify.rst | 8 -- docs/price.rst | 5 - docs/steem.rst | 11 -- docs/storage.rst | 17 --- docs/transactionbuilder.rst | 22 ---- docs/transactions.rst | 64 ----------- docs/utils.rst | 5 - docs/vote.rst | 15 --- docs/wallet.rst | 49 --------- docs/witness.rst | 28 ----- requirements.txt | 4 +- setup.py | 4 +- 76 files changed, 629 insertions(+), 568 deletions(-) delete mode 100644 docs/account.rst delete mode 100644 docs/amount.rst delete mode 100644 docs/asset.rst create mode 100644 docs/beem.account.rst create mode 100644 docs/beem.aes.rst create mode 100644 docs/beem.amount.rst create mode 100644 docs/beem.asset.rst create mode 100644 docs/beem.block.rst create mode 100644 docs/beem.blockchain.rst create mode 100644 docs/beem.comment.rst create mode 100644 docs/beem.exceptions.rst create mode 100644 docs/beem.instances.rst create mode 100644 docs/beem.market.rst create mode 100644 docs/beem.memo.rst create mode 100644 docs/beem.message.rst create mode 100644 docs/beem.notify.rst create mode 100644 docs/beem.price.rst create mode 100644 docs/beem.rst create mode 100644 docs/beem.steem.rst create mode 100644 docs/beem.storage.rst create mode 100644 docs/beem.transactionbuilder.rst create mode 100644 docs/beem.utils.rst create mode 100644 docs/beem.vote.rst create mode 100644 docs/beem.wallet.rst create mode 100644 docs/beem.witness.rst create mode 100644 docs/beemapi.exceptions.rst create mode 100644 docs/beemapi.rst rename docs/{websocketrpc.rst => beemapi.steemnoderpc.rst} (100%) rename docs/{websocket.rst => beemapi.websocket.rst} (100%) create mode 100644 docs/beembase.account.rst create mode 100644 docs/beembase.bip38.rst create mode 100644 docs/beembase.chains.rst create mode 100644 docs/beembase.memo.rst create mode 100644 docs/beembase.objects.rst create mode 100644 docs/beembase.objecttypes.rst create mode 100644 docs/beembase.operationids.rst create mode 100644 docs/beembase.operations.rst create mode 100644 docs/beembase.rst create mode 100644 docs/beembase.signedtransations.rst create mode 100644 docs/beembase.transactions.rst delete mode 100644 docs/block.rst delete mode 100644 docs/blockchain.rst delete mode 100644 docs/comment.rst delete mode 100644 docs/exceptions.rst delete mode 100644 docs/instances.rst delete mode 100644 docs/market.rst delete mode 100644 docs/memo.rst create mode 100644 docs/modules.rst delete mode 100644 docs/notify.rst delete mode 100644 docs/price.rst delete mode 100644 docs/steem.rst delete mode 100644 docs/storage.rst delete mode 100644 docs/transactionbuilder.rst delete mode 100644 docs/transactions.rst delete mode 100644 docs/utils.rst delete mode 100644 docs/vote.rst delete mode 100644 docs/wallet.rst delete mode 100644 docs/witness.rst diff --git a/.travis.yml b/.travis.yml index 94ea926d..cca898e6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,8 +15,18 @@ matrix: - pip install flake8 script: - flake8 + - os: linux + python: 3.5 + env: + - TOXENV=py35 - os: linux python: 3.6 + env: + - TOXENV=py36 + # - os: linux + # python: 3.7 + # env: + # - TOXENV=py37 - os: osx osx_image: xcode9.2 language: objective-c @@ -36,7 +46,7 @@ before_install: - pip install --upgrade pip - pip install --upgrade wheel # Set numpy version first, other packages link against it - - pip install six nose coverage codecov tox pytest pytest-cov + - pip install six nose coverage codecov tox-travis pytest pytest-cov script: - tox diff --git a/Makefile b/Makefile index f71bacf3..808279e4 100644 --- a/Makefile +++ b/Makefile @@ -39,4 +39,8 @@ dist: python3 setup.py sdist upload -r pypi python3 setup.py bdist_wheel upload +docs: + sphinx-apidoc -d 6 -e -f -o docs beem* + make -C docs clean html + release: clean check dist git diff --git a/README.rst b/README.rst index f56e1a1f..a686c2a9 100644 --- a/README.rst +++ b/README.rst @@ -4,6 +4,11 @@ beem - Unofficial Python 3 Library for Steem !!!Alpha-State, be carefull!!! beem is an unofficial python 3 library for steem, which is created new from scratch from https://github.com/xeroc/python-bitshares. +The library name is derived from a beam maschine, similar to the analogy between steem and steam. beem depends on + +.. image:: https://img.shields.io/pypi/v/beem.svg + :target: https://pypi.python.org/pypi/beem/ + :alt: Latest Version .. image:: https://travis-ci.org/holgern/beem.svg?branch=master :target: https://travis-ci.org/holgern/beem @@ -39,6 +44,12 @@ For OSX, please do the following:: brew install openssl export CFLAGS="-I$(brew --prefix openssl)/include $CFLAGS" export LDFLAGS="-L$(brew --prefix openssl)/lib $LDFLAGS" + +For Termux on Android, please install the following packages: + +.. code:: bash + + pkg install clang openssl-dev python-dev Install beem by pip:: diff --git a/beem/account.py b/beem/account.py index bd09a2c5..63f79b4e 100644 --- a/beem/account.py +++ b/beem/account.py @@ -30,6 +30,7 @@ class Account(BlockchainObject): from beem.account import Account account = Account("test") print(account) + print(account.balances) .. note:: This class comes with its own caching function to reduce the load on the API server. Instances of this class can be @@ -252,54 +253,3 @@ class Account(BlockchainObject): break if first < _limit: _limit = first - 1 - - # def upgrade(self): - # return self.steem.upgrade_account(account=self) - - -class AccountUpdate(dict): - """ This purpose of this class is to keep track of account updates - as they are pushed through by :class:`beem.notify.Notify`. - - Instances of this class are dictionaries and take the following - form: - - ... code-block: js - - {'name': 'test', - 'owner': '1.2.29', - 'pending_fees': 0, - 'pending_vested_fees': 16310, - 'total_core_in_orders': '6788845277634', - 'total_ops': 0} - - """ - - def __init__( - self, - data, - steem_instance=None - ): - self.steem = steem_instance or shared_steem_instance() - - if isinstance(data, dict): - super(AccountUpdate, self).__init__(data) - else: - account = Account(data, steem_instance=self.steem) - # update = self.steem.rpc.get_objects([ - # "2.6.%s" % (account["id"].split(".")[2]) - # ])[0] - super(AccountUpdate, self).__init__(account) - - @property - def account(self): - """ In oder to obtain the actual - :class:`steem.account.Account` from this class, you can - use the ``account`` attribute. - """ - account = Account(self["name"]) - account.refresh() - return account - - def __repr__(self): - return "<AccountUpdate: {}>".format(self["name"]) diff --git a/beem/amount.py b/beem/amount.py index 43a22728..8bc950e3 100644 --- a/beem/amount.py +++ b/beem/amount.py @@ -35,8 +35,16 @@ class Amount(dict): .. code-block:: python - Amount("1 STEEM") * 2 - Amount("15 SBD") + Amount("0.5 SBD") + from beem.amount import Amount + from beem.asset import Asset + a = Amount("1 STEEM") + b = Amount(1, "STEEM") + c = Amount("20", Asset("STEEM")) + a + b + a * 2 + a += b + a /= 2.0 + """ def __init__(self, *args, amount=None, asset=None, steem_instance=None): self["asset"] = {} diff --git a/beem/blockchain.py b/beem/blockchain.py index fd73725b..8dc0b382 100644 --- a/beem/blockchain.py +++ b/beem/blockchain.py @@ -14,6 +14,27 @@ class Blockchain(object): actual head block (``head``) This class let's you deal with blockchain related data and methods. + Read blockchain related data: + .. code-block:: python + + from beem.blockchain import Blockchain + chain = Blockchain() + + Read current block and blockchain info + .. code-block:: python + print(chain.get_current_block()) + print(chain.info()) + + Monitor for new blocks .. + .. code-block:: python + for block in chain.blocks(): + print(block) + + or each operation individually: + .. code-block:: python + for operations in chain.ops(): + print(operations) + """ def __init__( self, diff --git a/beem/instance.py b/beem/instance.py index b50b4fcd..d713eaeb 100644 --- a/beem/instance.py +++ b/beem/instance.py @@ -9,6 +9,16 @@ def shared_steem_instance(): """ This method will initialize ``SharedInstance.instance`` and return it. The purpose of this method is to have offer single default steem instance that can be reused by multiple classes. + + .. code-block:: python + + from beem.account import Account + from beem.instance import shared_steem_instance + + account = Account("test") + # is equivalent with + account = Account("test", steem_instance=shared_steem_instance()) + """ if not SharedInstance.instance: clear_cache() diff --git a/beem/memo.py b/beem/memo.py index 58523903..8b554f21 100644 --- a/beem/memo.py +++ b/beem/memo.py @@ -41,6 +41,97 @@ class Memo(object): if ``op_data`` being the payload of a transfer operation. + Memo Keys + ######### + + In BitShares, memos are AES-256 encrypted with a shared secret between sender and + receiver. It is derived from the memo private key of the sender and the memo + publick key of the receiver. + + In order for the receiver to decode the memo, the shared secret has to be + derived from the receiver's private key and the senders public key. + + The memo public key is part of the account and can be retreived with the + `get_account` call: + + .. code-block:: js + + get_account <accountname> + { + [...] + "options": { + "memo_key": "GPH5TPTziKkLexhVKsQKtSpo4bAv5RnB8oXcG4sMHEwCcTf3r7dqE", + [...] + }, + [...] + } + + while the memo private key can be dumped with `dump_private_keys` + + Memo Message + ############ + + The take the following form: + + .. code-block:: js + + { + "from": "GPH5mgup8evDqMnT86L7scVebRYDC2fwAWmygPEUL43LjstQegYCC", + "to": "GPH5Ar4j53kFWuEZQ9XhxbAja4YXMPJ2EnUg5QcrdeMFYUNMMNJbe", + "nonce": "13043867485137706821", + "message": "d55524c37320920844ca83bb20c8d008" + } + + The fields `from` and `to` contain the memo public key of sender and receiver. + The `nonce` is a random integer that is used for the seed of the AES encryption + of the message. + + Example + ####### + + Encrypting a memo + ~~~~~~~~~~~~~~~~~ + + The high level memo class makes use of the pysteem wallet to obtain keys + for the corresponding accounts. + + .. code-block:: python + + from beem.memo import Memo + from beem.account import Account + + memoObj = Memo( + from_account=Account(from_account), + to_account=Account(to_account) + ) + encrypted_memo = memoObj.encrypt(memo) + + Decoding of a received memo + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + .. code-block:: python + + from getpass import getpass + from beem.block import Block + from beem.memo import Memo + + # Obtain a transfer from the blockchain + block = Block(23755086) # block + transaction = block["transactions"][3] # transactions + op = transaction["operations"][0] # operation + op_id = op[0] # operation type + op_data = op[1] # operation payload + + # Instantiate Memo for decoding + memo = Memo() + + # Unlock wallet + memo.unlock_wallet(getpass()) + + # Decode memo + # Raises exception if required keys not available in the wallet + print(memo.decrypt(op_data["memo"])) + """ def __init__( self, diff --git a/beem/notify.py b/beem/notify.py index 60823177..24a38fc2 100644 --- a/beem/notify.py +++ b/beem/notify.py @@ -4,7 +4,6 @@ from beemapi.websocket import SteemWebsocket from beem.instance import shared_steem_instance from beem.blockchain import Blockchain from beem.price import Order, FilledOrder, UpdateCallOrder -from beem.account import AccountUpdate log = logging.getLogger(__name__) # logging.basicConfig(level=logging.DEBUG) @@ -12,10 +11,10 @@ log = logging.getLogger(__name__) class Notify(Events): """ Notifications on Blockchain events. - :param list accounts: Account names/ids to be notified about when changing - :param fnt on_tx: Callback that will be called for each transaction received + This modules allows yout to be notified of events taking place on the + blockchain. + :param fnt on_block: Callback that will be called for each block received - :param fnt on_account: Callback that will be called for changes of the listed accounts :param beem.steem.Steem steem_instance: Steem instance **Example** @@ -26,12 +25,10 @@ class Notify(Events): from beem.notify import Notify notify = Notify( - accounts=["test"], on_block=print, ) notify.listen() - """ __events__ = [ @@ -40,10 +37,11 @@ class Notify(Events): def __init__( self, - accounts=[], + # accounts=[], on_block=None, only_block_id=False, steem_instance=None, + keep_alive=25 ): # Events super(Notify, self).__init__() @@ -51,8 +49,8 @@ class Notify(Events): # Steem instance self.steem = steem_instance or shared_steem_instance() - # Callbacks + # Callbacks if on_block: self.on_block += on_block @@ -63,16 +61,18 @@ class Notify(Events): password=self.steem.rpc.password, only_block_id=only_block_id, on_block=self.process_block, + keep_alive=keep_alive ) - def process_account(self, message): - """ This is used for processing of account Updates. It will - return instances of :class:beem.account.AccountUpdate` + def reset_subscriptions(self, accounts=[]): + """Change the subscriptions of a running Notify instance + """ + self.websocket.reset_subscriptions(accounts) + + def close(self): + """Cleanly close the Notify instance """ - self.on_account(AccountUpdate( - message, - steem_instance=self.steem - )) + self.websocket.close() def process_block(self, message): self.on_block(message) diff --git a/beem/transactionbuilder.py b/beem/transactionbuilder.py index 7a8e1e14..07a4577c 100644 --- a/beem/transactionbuilder.py +++ b/beem/transactionbuilder.py @@ -17,6 +17,23 @@ log = logging.getLogger(__name__) class TransactionBuilder(dict): """ This class simplifies the creation of transactions by adding operations and signers. + To build your own transactions and sign them + + .. code-block:: python + + from beem.transactionbuilder import TransactionBuilder + from beembase.operations import Transfer + tx = TransactionBuilder() + tx.appendOps(Transfer(**{ + "from": "test", + "to": "test1", + "amount": "1 STEEM", + "memo": "" + })) + tx.appendSigner("test", "active") + tx.sign() + tx.broadcast() + """ def __init__( self, diff --git a/beem/vote.py b/beem/vote.py index 23fd89df..fc09053e 100644 --- a/beem/vote.py +++ b/beem/vote.py @@ -15,6 +15,11 @@ class Vote(BlockchainObject): :param str authorperm: perm link to post/comment :param steem steem_instance: Steem() instance to use when accesing a RPC + .. code-block:: python + + from beem.vote import Vote + v = Vote("theaussiegame/cryptokittie-giveaway-number-2|") + """ type_id = 11 diff --git a/beem/wallet.py b/beem/wallet.py index 832116ff..1d957a0e 100644 --- a/beem/wallet.py +++ b/beem/wallet.py @@ -41,6 +41,48 @@ class Wallet(): ``active``, ``owner``, ``posting`` or ``memo`` keys for any account. This mode is only used for *foreign* signatures! + + Create a new wallet + ------------------- + + A new wallet can be created by using: + + .. code-block:: python + + from beem import Steem + steem = Steem() + steem.wallet.create("supersecret-passphrase") + + This will raise an exception if you already have a wallet installed. + + Unlocking the wallet for signing + -------------------------------- + + The wallet can be unlocked for signing using + + .. code-block:: python + + from beem import Steem + steem = Steem() + steem.wallet.unlock("supersecret-passphrase") + + Adding a Private Key + -------------------- + + A private key can be added by using the + :func:`steem.wallet.Wallet.addPrivateKey` method that is available + **after** unlocking the wallet with the correct passphrase: + + .. code-block:: python + + from beem import Steem + steem = Steem() + steem.wallet.unlock("supersecret-passphrase") + steem.wallet.addPrivateKey("5xxxxxxxxxxxxxxxxxxxx") + + .. note:: The private key has to be either in hexadecimal or in wallet + import format (wif) (starting with a ``5``). + """ keys = [] rpc = None diff --git a/beem/witness.py b/beem/witness.py index 9534333e..69e3d93c 100644 --- a/beem/witness.py +++ b/beem/witness.py @@ -13,6 +13,11 @@ class Witness(BlockchainObject): :param steem steem_instance: Steem() instance to use when accesing a RPC + .. code-block:: python + + from beem.witness import Witness + Witness("gtg") + """ type_id = 3 diff --git a/beemapi/steemnoderpc.py b/beemapi/steemnoderpc.py index 3da3a00b..4ccbfe81 100644 --- a/beemapi/steemnoderpc.py +++ b/beemapi/steemnoderpc.py @@ -18,6 +18,10 @@ class NumRetriesReached(Exception): class SteemNodeRPC(GrapheneWebsocketRPC): + """ This class allows to call API methods exposed by the witness node via + websockets. + + """ def __init__(self, *args, **kwargs): super(SteemNodeRPC, self).__init__(*args, **kwargs) diff --git a/beemapi/websocket.py b/beemapi/websocket.py index 218b6c6c..7c62ce36 100644 --- a/beemapi/websocket.py +++ b/beemapi/websocket.py @@ -39,7 +39,6 @@ class SteemWebsocket(Events): Notices: - * ``on_block``: .. code-block:: js @@ -58,8 +57,10 @@ class SteemWebsocket(Events): user="", password="", *args, + # accounts=[], only_block_id=False, on_block=None, + # on_account=None, keep_alive=25, num_retries=-1, **kwargs @@ -72,6 +73,7 @@ class SteemWebsocket(Events): self.user = user self.password = password self.keep_alive = keep_alive + self.run_event = threading.Event() self.only_block_id = only_block_id if isinstance(urls, cycle): self.urls = urls @@ -84,8 +86,13 @@ class SteemWebsocket(Events): Events.__init__(self) self.events = Events() + # Store the objects we are interested in + # self.subscription_accounts = accounts + if on_block: self.on_block += on_block + # if on_account: + # self.on_account += on_account def cancel_subscriptions(self): # self.cancel_all_subscriptions() @@ -103,8 +110,18 @@ class SteemWebsocket(Events): """ self.login(self.user, self.password, api_id=1) # self.database(api_id=1) - # self.cancel_all_subscriptions() + self.__set_subscriptions() + self.keepalive = threading.Thread( + target=self._ping, + ) + self.keepalive.start() + + def reset_subscriptions(self, accounts=[]): + # self.subscription_accounts = accounts + self.__set_subscriptions() + def __set_subscriptions(self): + # self.cancel_all_subscriptions() # Subscribe to events on the Backend and give them a # callback number that allows us to identify the event # set_pending_transaction_callback is removed from api @@ -114,18 +131,12 @@ class SteemWebsocket(Events): self.set_block_applied_callback( self.__events__.index('on_block')) + def _ping(self): # We keep the connetion alive by requesting a short object def ping(self): - while 1: + while not self.run_event.wait(self.keep_alive): log.debug('Sending ping') self.get_chain_properties() - time.sleep(self.keep_alive) - - self.keepalive = threading.Thread( - target=ping, - args=(self,) - ) - self.keepalive.start() def process_block(self, data): """ This method is called on notices that need processing. Here, @@ -213,7 +224,7 @@ class SteemWebsocket(Events): connected with the provided APIs """ cnt = 0 - while True: + while not self.run_event.is_set(): cnt += 1 self.url = next(self.urls) log.debug("Trying to connect to node %s" % self.url) @@ -251,6 +262,15 @@ class SteemWebsocket(Events): self._request_id += 1 return self._request_id + def close(self): + """ Closes the websocket connection and waits for the ping thread to close + """ + self.run_event.set() + self.ws.close() + + if self.keepalive and self.keepalive.is_alive(): + self.keepalive.join() + """ RPC Calls """ def rpcexec(self, payload): diff --git a/docs/account.rst b/docs/account.rst deleted file mode 100644 index aa7c9cd5..00000000 --- a/docs/account.rst +++ /dev/null @@ -1,17 +0,0 @@ -Account -~~~~~~~ - -Obtaining data of an account. - -.. code-block:: python - - from beem.account import Account - account = Account("test") - print(account) - print(account.balances) - -.. autoclass:: beem.account.Account - :members: - -.. autoclass:: beem.account.AccountUpdate - :members: diff --git a/docs/amount.rst b/docs/amount.rst deleted file mode 100644 index a982990a..00000000 --- a/docs/amount.rst +++ /dev/null @@ -1,19 +0,0 @@ -Amount -~~~~~~ - -For the sake of easier handling of Assets on the blockchain - -.. code-block:: python - - from beem.amount import Amount - from beem.asset import Asset - a = Amount("1 USD") - b = Amount(1, "USD") - c = Amount("20", Asset("USD")) - a + b - a * 2 - a += b - a /= 2.0 - -.. autoclass:: beem.amount.Amount - :members: diff --git a/docs/asset.rst b/docs/asset.rst deleted file mode 100644 index b9e1b0d4..00000000 --- a/docs/asset.rst +++ /dev/null @@ -1,5 +0,0 @@ -Asset -~~~~~~ - -.. autoclass:: beem.asset.Asset - :members: diff --git a/docs/beem.account.rst b/docs/beem.account.rst new file mode 100644 index 00000000..eccc1ae4 --- /dev/null +++ b/docs/beem.account.rst @@ -0,0 +1,7 @@ +beem\.account module +==================== + +.. automodule:: beem.account + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.aes.rst b/docs/beem.aes.rst new file mode 100644 index 00000000..2af68299 --- /dev/null +++ b/docs/beem.aes.rst @@ -0,0 +1,7 @@ +beem\.aes module +================ + +.. automodule:: beem.aes + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.amount.rst b/docs/beem.amount.rst new file mode 100644 index 00000000..07676b71 --- /dev/null +++ b/docs/beem.amount.rst @@ -0,0 +1,7 @@ +beem\.amount module +=================== + +.. automodule:: beem.amount + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.asset.rst b/docs/beem.asset.rst new file mode 100644 index 00000000..93c12ae0 --- /dev/null +++ b/docs/beem.asset.rst @@ -0,0 +1,7 @@ +beem\.asset module +================== + +.. automodule:: beem.asset + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.block.rst b/docs/beem.block.rst new file mode 100644 index 00000000..24c7b18c --- /dev/null +++ b/docs/beem.block.rst @@ -0,0 +1,7 @@ +beem\.block module +================== + +.. automodule:: beem.block + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.blockchain.rst b/docs/beem.blockchain.rst new file mode 100644 index 00000000..5e63eabc --- /dev/null +++ b/docs/beem.blockchain.rst @@ -0,0 +1,7 @@ +beem\.blockchain module +======================= + +.. automodule:: beem.blockchain + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.comment.rst b/docs/beem.comment.rst new file mode 100644 index 00000000..d73cf23f --- /dev/null +++ b/docs/beem.comment.rst @@ -0,0 +1,7 @@ +beem\.comment module +================== + +.. automodule:: beem.comment + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.exceptions.rst b/docs/beem.exceptions.rst new file mode 100644 index 00000000..c0c8b970 --- /dev/null +++ b/docs/beem.exceptions.rst @@ -0,0 +1,7 @@ +beem\.exceptions module +======================= + +.. automodule:: beem.exceptions + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.instances.rst b/docs/beem.instances.rst new file mode 100644 index 00000000..2cdfbe70 --- /dev/null +++ b/docs/beem.instances.rst @@ -0,0 +1,7 @@ +beem\.instance module +===================== + +.. automodule:: beem.instance + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.market.rst b/docs/beem.market.rst new file mode 100644 index 00000000..db64afa9 --- /dev/null +++ b/docs/beem.market.rst @@ -0,0 +1,7 @@ +beem\.market module +=================== + +.. automodule:: beem.market + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.memo.rst b/docs/beem.memo.rst new file mode 100644 index 00000000..26b6bd03 --- /dev/null +++ b/docs/beem.memo.rst @@ -0,0 +1,7 @@ +beem\.memo module +================= + +.. automodule:: beem.memo + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.message.rst b/docs/beem.message.rst new file mode 100644 index 00000000..6dc3f825 --- /dev/null +++ b/docs/beem.message.rst @@ -0,0 +1,7 @@ +beem\.message module +==================== + +.. automodule:: beem.message + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.notify.rst b/docs/beem.notify.rst new file mode 100644 index 00000000..0a47d5a9 --- /dev/null +++ b/docs/beem.notify.rst @@ -0,0 +1,7 @@ +beem\.notify module +=================== + +.. automodule:: beem.notify + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.price.rst b/docs/beem.price.rst new file mode 100644 index 00000000..2da4fcdc --- /dev/null +++ b/docs/beem.price.rst @@ -0,0 +1,7 @@ +beem\.price module +================== + +.. automodule:: beem.price + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.rst b/docs/beem.rst new file mode 100644 index 00000000..287524e6 --- /dev/null +++ b/docs/beem.rst @@ -0,0 +1,38 @@ +beem package +================= + +Submodules +---------- + +.. toctree:: + + beem.account + beem.aes + beem.amount + beem.asset + beem.steem + beem.block + beem.blockchain + beem.blockchainobject + beem.comment + beem.exceptions + beem.instance + beem.market + beem.memo + beem.message + beem.notify + beem.price + beem.storage + beem.transactionbuilder + beem.utils + beem.vote + beem.wallet + beem.witness + +Module contents +--------------- + +.. automodule:: beem + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.steem.rst b/docs/beem.steem.rst new file mode 100644 index 00000000..6d603e9e --- /dev/null +++ b/docs/beem.steem.rst @@ -0,0 +1,7 @@ +beem\.steem module +================== + +.. automodule:: beem.steem + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.storage.rst b/docs/beem.storage.rst new file mode 100644 index 00000000..3b95ce9d --- /dev/null +++ b/docs/beem.storage.rst @@ -0,0 +1,7 @@ +beem\.storage module +==================== + +.. automodule:: beem.storage + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.transactionbuilder.rst b/docs/beem.transactionbuilder.rst new file mode 100644 index 00000000..00998515 --- /dev/null +++ b/docs/beem.transactionbuilder.rst @@ -0,0 +1,7 @@ +beem\.transactionbuilder module +=============================== + +.. automodule:: beem.transactionbuilder + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.utils.rst b/docs/beem.utils.rst new file mode 100644 index 00000000..4983a4bd --- /dev/null +++ b/docs/beem.utils.rst @@ -0,0 +1,7 @@ +beem\.utils module +================== + +.. automodule:: beem.utils + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.vote.rst b/docs/beem.vote.rst new file mode 100644 index 00000000..b9d76e5f --- /dev/null +++ b/docs/beem.vote.rst @@ -0,0 +1,7 @@ +beem\.vote module +================= + +.. automodule:: beem.vote + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.wallet.rst b/docs/beem.wallet.rst new file mode 100644 index 00000000..9c393d72 --- /dev/null +++ b/docs/beem.wallet.rst @@ -0,0 +1,7 @@ +beem\.wallet module +=================== + +.. automodule:: beem.wallet + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beem.witness.rst b/docs/beem.witness.rst new file mode 100644 index 00000000..15f4120c --- /dev/null +++ b/docs/beem.witness.rst @@ -0,0 +1,8 @@ +beem\.witness module +==================== + +.. automodule:: beem.witness + :members: + :undoc-members: + :show-inheritance: + diff --git a/docs/beemapi.exceptions.rst b/docs/beemapi.exceptions.rst new file mode 100644 index 00000000..07c320d9 --- /dev/null +++ b/docs/beemapi.exceptions.rst @@ -0,0 +1,7 @@ +beemapi\.exceptions module +========================== + +.. automodule:: beemapi.exceptions + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beemapi.rst b/docs/beemapi.rst new file mode 100644 index 00000000..5150dd44 --- /dev/null +++ b/docs/beemapi.rst @@ -0,0 +1,19 @@ +beemapi package +=============== + +Submodules +---------- + +.. toctree:: + + beemapi.steemnoderpc + beemapi.exceptions + beemapi.websocket + +Module contents +--------------- + +.. automodule:: beemapi + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/websocketrpc.rst b/docs/beemapi.steemnoderpc.rst similarity index 100% rename from docs/websocketrpc.rst rename to docs/beemapi.steemnoderpc.rst diff --git a/docs/websocket.rst b/docs/beemapi.websocket.rst similarity index 100% rename from docs/websocket.rst rename to docs/beemapi.websocket.rst diff --git a/docs/beembase.account.rst b/docs/beembase.account.rst new file mode 100644 index 00000000..046169ac --- /dev/null +++ b/docs/beembase.account.rst @@ -0,0 +1,7 @@ +beembase\.account module +======================== + +.. automodule:: beembase.account + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beembase.bip38.rst b/docs/beembase.bip38.rst new file mode 100644 index 00000000..fc53d02a --- /dev/null +++ b/docs/beembase.bip38.rst @@ -0,0 +1,7 @@ +beembase\.bip38 module +======================== + +.. automodule:: beembase.bip38 + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beembase.chains.rst b/docs/beembase.chains.rst new file mode 100644 index 00000000..a7526f6d --- /dev/null +++ b/docs/beembase.chains.rst @@ -0,0 +1,7 @@ +beembase\.chains module +======================= + +.. automodule:: beembase.chains + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beembase.memo.rst b/docs/beembase.memo.rst new file mode 100644 index 00000000..8708a95b --- /dev/null +++ b/docs/beembase.memo.rst @@ -0,0 +1,7 @@ +beembase\.memo module +===================== + +.. automodule:: beembase.memo + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beembase.objects.rst b/docs/beembase.objects.rst new file mode 100644 index 00000000..be152cd9 --- /dev/null +++ b/docs/beembase.objects.rst @@ -0,0 +1,7 @@ +beembase\.objects module +======================== + +.. automodule:: beembase.objects + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beembase.objecttypes.rst b/docs/beembase.objecttypes.rst new file mode 100644 index 00000000..77bf72dd --- /dev/null +++ b/docs/beembase.objecttypes.rst @@ -0,0 +1,7 @@ +beembase\.objecttypes module +============================ + +.. automodule:: beembase.objecttypes + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beembase.operationids.rst b/docs/beembase.operationids.rst new file mode 100644 index 00000000..b757f3be --- /dev/null +++ b/docs/beembase.operationids.rst @@ -0,0 +1,7 @@ +beembase\.operationids module +============================= + +.. automodule:: beembase.operationids + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beembase.operations.rst b/docs/beembase.operations.rst new file mode 100644 index 00000000..0fd3b967 --- /dev/null +++ b/docs/beembase.operations.rst @@ -0,0 +1,7 @@ +beembase\.operations module +=========================== + +.. automodule:: beembase.operationids + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beembase.rst b/docs/beembase.rst new file mode 100644 index 00000000..534113ee --- /dev/null +++ b/docs/beembase.rst @@ -0,0 +1,26 @@ +beembase package +================ + +Submodules +---------- + +.. toctree:: + + beembase.account + beembase.bip38 + beembase.chains + beembase.memo + beembase.objects + beembase.objecttypes + beembase.operationids + beembase.operations + beembase.signedtransactions + beembase.transactions + +Module contents +--------------- + +.. automodule:: beembase + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beembase.signedtransations.rst b/docs/beembase.signedtransations.rst new file mode 100644 index 00000000..26baaf36 --- /dev/null +++ b/docs/beembase.signedtransations.rst @@ -0,0 +1,7 @@ +beembase\.signedtransactions module +=================================== + +.. automodule:: beembase.signedtransactions + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/beembase.transactions.rst b/docs/beembase.transactions.rst new file mode 100644 index 00000000..61cf1eee --- /dev/null +++ b/docs/beembase.transactions.rst @@ -0,0 +1,7 @@ +beembase\.transactions module +=================================== + +.. automodule:: beembase.transactions + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/block.rst b/docs/block.rst deleted file mode 100644 index ccc63c9b..00000000 --- a/docs/block.rst +++ /dev/null @@ -1,13 +0,0 @@ -Block -~~~~~~ - -Easily read data in a Block - -.. code-block:: python - - from beem.block import Block - from pprint import pprint - pprint(Block(1)) - -.. autoclass:: beem.block.Block - :members: diff --git a/docs/blockchain.rst b/docs/blockchain.rst deleted file mode 100644 index 4ee75051..00000000 --- a/docs/blockchain.rst +++ /dev/null @@ -1,33 +0,0 @@ -Blockchain -~~~~~~~~~~ - -Read blockchain related data- - -.. code-block:: python - - from beem.blockchain import Blockchain - chain = Blockchain() - -Read current block and blockchain info - -.. code-block:: python - - print(chain.get_current_block()) - print(chain.info()) - -Monitor for new blocks .. - -.. code-block:: python - - for block in chain.blocks(): - print(block) - -... or each operation individually: - -.. code-block:: python - - for operations in chain.ops(): - print(operations) - -.. autoclass:: beem.blockchain.Blockchain - :members: diff --git a/docs/comment.rst b/docs/comment.rst deleted file mode 100644 index 223c26fc..00000000 --- a/docs/comment.rst +++ /dev/null @@ -1,13 +0,0 @@ -Comment -~~~~~~~ - -Read data about a Comment/Post - -.. code-block:: python - - from beem.comment import Comment - -.. autoclass:: beem.comment.Comment - :members: - - diff --git a/docs/exceptions.rst b/docs/exceptions.rst deleted file mode 100644 index 36b2e1f5..00000000 --- a/docs/exceptions.rst +++ /dev/null @@ -1,8 +0,0 @@ -Exceptions -~~~~~~~~~~ - -.. autoclass:: beem.exceptions - :members: - -.. autoclass:: beemapi.exceptions - :members: diff --git a/docs/index.rst b/docs/index.rst index 83f62cfe..c8e3c2a5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -10,7 +10,7 @@ http://rest-sphinx-memo.readthedocs.org/en/latest/ReST.html Welcome to beem's documentation! -=============================================== +================================ Steem is a blockchain-based rewards platform for publishers to monetize content and grow community. @@ -20,6 +20,13 @@ software) that allows for fast transactions and ascalable blockchain solution. In case of Steem, it comes with decentralized publishing of content. +The Steem library has been designed to allow developers to easily +access its routines and make use of the network without dealing with all +the related blockchain technology and cryptography. This library can be +used to do anything that is allowed according to the Steem +blockchain protocol. + + About this Library ------------------ @@ -94,7 +101,7 @@ Quickstart General -------------------------- +------- .. toctree:: :maxdepth: 1 @@ -105,42 +112,34 @@ General contribute support -beem Libraries --------------------------- +Packages +-------- + + +beem +~~~~ .. toctree:: - :maxdepth: 1 + :maxdepth: 3 + + beem - steem - instances - account - amount - asset - block - blockchain - exceptions - dex - market - notify - price - vesting - witness - -Low Level Classes ------------------ +beembase +~~~~~~~~ .. toctree:: - :maxdepth: 1 + :maxdepth: 3 + + beembase - storage - utils - transactionbuilder - wallet - websocket - websocketrpc - transactions - memo +beemapi +~~~~~~~ +.. toctree:: + :maxdepth: 3 + + beemapi + Glossary ======== diff --git a/docs/instances.rst b/docs/instances.rst deleted file mode 100644 index 571bd5fa..00000000 --- a/docs/instances.rst +++ /dev/null @@ -1,16 +0,0 @@ -Instances -~~~~~~~~~ - -Default instance to be used when no ``steem_instance`` is given to -the Objects! - -.. code-block:: python - - from beem.instance import shared_steem_instance - - account = Account("test") - # is equivalent with - account = Account("test", steem_instance=shared_steem_instance()) - -.. automethod:: beem.instance.shared_steem_instance -.. automethod:: beem.instance.set_shared_steem_instance diff --git a/docs/market.rst b/docs/market.rst deleted file mode 100644 index 3a0ec86b..00000000 --- a/docs/market.rst +++ /dev/null @@ -1,5 +0,0 @@ -Market -~~~~~~~ - -.. autoclass:: beem.market.Market - :members: diff --git a/docs/memo.rst b/docs/memo.rst deleted file mode 100644 index 6a287ce6..00000000 --- a/docs/memo.rst +++ /dev/null @@ -1,100 +0,0 @@ -**** -Memo -**** - -Memo Keys -######### - -In BitShares, memos are AES-256 encrypted with a shared secret between sender and -receiver. It is derived from the memo private key of the sender and the memo -publick key of the receiver. - -In order for the receiver to decode the memo, the shared secret has to be -derived from the receiver's private key and the senders public key. - -The memo public key is part of the account and can be retreived with the -`get_account` call: - -.. code-block:: js - - get_account <accountname> - { - [...] - "options": { - "memo_key": "GPH5TPTziKkLexhVKsQKtSpo4bAv5RnB8oXcG4sMHEwCcTf3r7dqE", - [...] - }, - [...] - } - -while the memo private key can be dumped with `dump_private_keys` - -Memo Message -############ - -The take the following form: - -.. code-block:: js - - { - "from": "GPH5mgup8evDqMnT86L7scVebRYDC2fwAWmygPEUL43LjstQegYCC", - "to": "GPH5Ar4j53kFWuEZQ9XhxbAja4YXMPJ2EnUg5QcrdeMFYUNMMNJbe", - "nonce": "13043867485137706821", - "message": "d55524c37320920844ca83bb20c8d008" - } - -The fields `from` and `to` contain the memo public key of sender and receiver. -The `nonce` is a random integer that is used for the seed of the AES encryption -of the message. - -Example -####### - -Encrypting a memo -~~~~~~~~~~~~~~~~~ - -The high level memo class makes use of the pysteem wallet to obtain keys -for the corresponding accounts. - -.. code-block:: python - - from beem.memo import Memo - from beem.account import Account - - memoObj = Memo( - from_account=Account(from_account), - to_account=Account(to_account) - ) - encrypted_memo = memoObj.encrypt(memo) - -Decoding of a received memo -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: python - - from getpass import getpass - from beem.block import Block - from beem.memo import Memo - - # Obtain a transfer from the blockchain - block = Block(23755086) # block - transaction = block["transactions"][3] # transactions - op = transaction["operations"][0] # operation - op_id = op[0] # operation type - op_data = op[1] # operation payload - - # Instantiate Memo for decoding - memo = Memo() - - # Unlock wallet - memo.unlock_wallet(getpass()) - - # Decode memo - # Raises exception if required keys not available in the wallet - print(memo.decrypt(op_data["memo"])) - -API -### - -.. automodule:: beembase.memo - :members: diff --git a/docs/modules.rst b/docs/modules.rst new file mode 100644 index 00000000..266c622a --- /dev/null +++ b/docs/modules.rst @@ -0,0 +1,9 @@ +beem +==== + +.. toctree:: + :maxdepth: 6 + + beem + beemapi + beembase \ No newline at end of file diff --git a/docs/notify.rst b/docs/notify.rst deleted file mode 100644 index cc6945c9..00000000 --- a/docs/notify.rst +++ /dev/null @@ -1,8 +0,0 @@ -Notify -~~~~~~~ - -This modules allows yout to be notified of events taking place on the -blockchain. - -.. autoclass:: beem.notify.Notify - :members: diff --git a/docs/price.rst b/docs/price.rst deleted file mode 100644 index b10a1b59..00000000 --- a/docs/price.rst +++ /dev/null @@ -1,5 +0,0 @@ -Price -~~~~~~ - -.. autoclass:: beem.price.Price - :members: diff --git a/docs/steem.rst b/docs/steem.rst deleted file mode 100644 index 7db40e7c..00000000 --- a/docs/steem.rst +++ /dev/null @@ -1,11 +0,0 @@ -Steem -~~~~~~~~~ - -The Steem library has been designed to allow developers to easily -access its routines and make use of the network without dealing with all -the related blockchain technology and cryptography. This library can be -used to do anything that is allowed according to the Steem -blockchain protocol. - -.. autoclass:: beem.steem.Steem - :members: diff --git a/docs/storage.rst b/docs/storage.rst deleted file mode 100644 index 102bde85..00000000 --- a/docs/storage.rst +++ /dev/null @@ -1,17 +0,0 @@ -******* -Storage -******* - -These classes are very low level and are not well documented. - -API ---- - -.. autoclass:: beem.storage.DataDir - :members: - -.. autoclass:: beem.storage.Key - :members: - -.. autoclass:: beem.storage.MasterPassword - :members: diff --git a/docs/transactionbuilder.rst b/docs/transactionbuilder.rst deleted file mode 100644 index 4f20f427..00000000 --- a/docs/transactionbuilder.rst +++ /dev/null @@ -1,22 +0,0 @@ -Transaction Builder -~~~~~~~~~~~~~~~~~~~ - -To build your own transactions and sign them - -.. code-block:: python - - from beem.transactionbuilder import TransactionBuilder - from beembase.operations import Transfer - tx = TransactionBuilder() - tx.appendOps(Transfer(**{ - "from": "test", - "to": "test1", - "amount": "1 STEEM", - "memo": "" - })) - tx.appendSigner("test", "active") - tx.sign() - tx.broadcast() - -.. autoclass:: beem.transactionbuilder.TransactionBuilder - :members: diff --git a/docs/transactions.rst b/docs/transactions.rst deleted file mode 100644 index f838aa85..00000000 --- a/docs/transactions.rst +++ /dev/null @@ -1,64 +0,0 @@ -*********************************************** -Manual Constructing and Signing of Transactions -*********************************************** - -.. warning:: This is a low level class. Do not use this class unless you - know what you are doing! - -.. note:: This class is under development and meant for people that are - looking into the low level construction and signing of various - transactions. - -Loading Transactions Class -########################## - -We load the class for manual transaction construction via: - -.. code-block:: python - - from beembase import transactions, operations - -Construction -############ - -Now we can use the predefined transaction formats, e.g. ``Transfer`` or -``limit_order_create`` as follows: - -1. define the expiration time -2. define a JSON object that contains all data for that transaction -3. load that data into the corresponding **operations** class -4. collect multiple operations -5. get some blockchain parameters to prevent replay attack -6. Construct the actual **transaction** from the list of operations -7. sign the transaction with the corresponding private key(s) - -**Example A: Transfer** - -.. code-block:: python - - expiration = transactions.formatTimeFromNow(60) - op = operations.Transfer(**{ - "from": "test", - "to": "test1", - "amount": "1.000 SBD", - "memo": "" - }) - ops = [transactions.Operation(op)] - ref_block_num, ref_block_prefix = transactions.getBlockParams(rpc) - tx = transactions.Signed_Transaction(ref_block_num=ref_block_num, - ref_block_prefix=ref_block_prefix, - expiration=expiration, - operations=ops) - tx = tx.sign([wif]) - - -Broadcasting -############ - -For broadcasting, we first need to convert the transactions class into a -JSON object. After that, we can broadcast this to the network: - -.. code-block:: python - - # Broadcast JSON to network - rpc.broadcast_transaction(tx.json(), api="network_broadcast"): diff --git a/docs/utils.rst b/docs/utils.rst deleted file mode 100644 index f2962844..00000000 --- a/docs/utils.rst +++ /dev/null @@ -1,5 +0,0 @@ -Utilities -~~~~~~~~~~~~~~~~~~~ - -.. autoclass:: beem.utils - :members: diff --git a/docs/vote.rst b/docs/vote.rst deleted file mode 100644 index e1fbf2f0..00000000 --- a/docs/vote.rst +++ /dev/null @@ -1,15 +0,0 @@ -Vote -~~~~ - -Read data about a vote - -.. code-block:: python - - from beem.vote import Vote - Witness("gtg") - -.. autoclass:: beem.vote.Vote - :members: - - - diff --git a/docs/wallet.rst b/docs/wallet.rst deleted file mode 100644 index f6092fae..00000000 --- a/docs/wallet.rst +++ /dev/null @@ -1,49 +0,0 @@ -Wallet -~~~~~~ - -Create a new wallet -------------------- - -A new wallet can be created by using: - -.. code-block:: python - - from beem import Steem - steem = Steem() - steem.wallet.create("supersecret-passphrase") - -This will raise an exception if you already have a wallet installed. - -Unlocking the wallet for signing --------------------------------- - -The wallet can be unlocked for signing using - -.. code-block:: python - - from beem import Steem - steem = Steem() - steem.wallet.unlock("supersecret-passphrase") - -Adding a Private Key --------------------- - -A private key can be added by using the -:func:`steem.wallet.Wallet.addPrivateKey` method that is available -**after** unlocking the wallet with the correct passphrase: - -.. code-block:: python - - from beem import Steem - steem = Steem() - steem.wallet.unlock("supersecret-passphrase") - steem.wallet.addPrivateKey("5xxxxxxxxxxxxxxxxxxxx") - -.. note:: The private key has to be either in hexadecimal or in wallet - import format (wif) (starting with a ``5``). - -API ---- - -.. autoclass:: beem.wallet.Wallet - :members: diff --git a/docs/witness.rst b/docs/witness.rst deleted file mode 100644 index 55458502..00000000 --- a/docs/witness.rst +++ /dev/null @@ -1,28 +0,0 @@ -Witness -~~~~~~~ - -Read data about a witness - -.. code-block:: python - - from beem.witness import Witness - Witness("gtg") - -.. autoclass:: beem.witness.Witness - :members: - -.. autoclass:: beem.witness.Witnesses - :members: - -.. autoclass:: beem.witness.WitnessesVotedByAccount - :members: - -.. autoclass:: beem.witness.WitnessesRankedByVote - :members: - -.. autoclass:: beem.witness.WitnessesByIds - :members: - -.. autoclass:: beem.witness.LookupWitnesses - :members: - diff --git a/requirements.txt b/requirements.txt index a025cfee..76b9c782 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ -graphenelib -pycryptodomex>=3.4.6 +graphenelib>=0.5.9 +pycryptodome>=3.4.6 scrypt>=0.7.1 Events>=0.2.2 pyyaml diff --git a/setup.py b/setup.py index 72d2cc00..9f875fde 100755 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ except LookupError: ascii = codecs.lookup('ascii') codecs.register(lambda name, enc=ascii: {True: enc}.get(name == 'mbcs')) -VERSION = '0.19.3' +VERSION = '0.19.4' def write_version_py(filename): @@ -65,7 +65,7 @@ if __name__ == '__main__': "appdirs", "Events", "scrypt", - "pycryptodomex", # for AES, installed through graphenelib already + "pycryptodome", # for AES, installed through graphenelib already ], setup_requires=['pytest-runner'], tests_require=['pytest'], -- GitLab