update for beem - adding claim account creation to beempy and support for whaleshares

in #utopian-io6 years ago (edited)

Repository

https://github.com/holgern/beem


beem-logo.png

beem is a python library for steem. beem has now 502 unit tests and a coverage of 72 %. The current version is 0.20.7.
I created a discord channel for answering a question or discussing beem: https://discord.gg/4HM592V

The newest beem version can be installed by:

pip install -U beem

or when using conda:

conda install beem

beem can be updated by:

conda update beem

New Features

claim account and create claim account added to beempy

A new command for claim accounts was added to beempy:
beempy claimaccount <creator>
where <creator> is the account name which pays for the account claiming with RC.
image.png

When --fee is set to --fee 3, the account creation fee is paid with STEEM instead of being changed with RCs. The parameter --number or -n can be set to claim more than 1 account.

create a claimed account

beempy newaccount -a <creator> <newaccountname> was adapted to HF20. When --create-claimed-account' is set, a subsidized account with name <newaccountname> is created:

beempy newaccount -a <creator> --create-claimed-account <newaccountname>

creates a
image.png

Whaleshares is supported

Different steem blockchain with a different number of operations are supportet now. At the moment, only the operationids for the steem chain and for the whaleshares chain are stored in beembase/operattionsids.py. As the network prefix is now set in the init function of Signed_transaction and Operation, the correct operation-ids table can be loaded. A wrong operation id prevents an operation from being successfully broadcasted.

node = ["wss://whaleshares.io/ws", "https://rpc.wls.services/"]
wls = Steem(node=node)

beem will always fully support steem, supporting of other steem-based networks is only done when the functionality for interacting with steem is not disturbed. Supporting other networks will help to prevent that several beem forks are being created and will help that beem itself is further developed and improved.

Better testnet and 3rd party chain support

All "STEEM", "SBD" and "VESTS" strings are replaced by steem.steem_symbol, steem.sbd_symbol and steem.vests_symbol properties which adapt to the connected network thanks to @crokkon (utopian-io post).

I replaced also all fixed "STEEM", "SBD" and "VESTS" strings in beempy. For networks which do not have a SBD currency as Whaleshares, the sbd_symbol is replaced by the steem_symbol:

    @property
    def sbd_symbol(self):
        """ get the current chains symbol for SBD (e.g. "TBD" on testnet) """
        # some networks (e.g. whaleshares) do not have SBD
        try:
            symbol = self._get_asset_symbol(0)
        except KeyError:
            symbol = self._get_asset_symbol(1)
        return symbol

Balances in the account class depend now on the number of available symbols:

acc2.balances
{'available': [0.000 STEEM, 0.098 SBD, 10152.045284 VESTS],
 'rewards': [0.000 STEEM, 0.000 SBD, 0.000000 VESTS],
 'savings': [0.000 STEEM, 0.000 SBD],
 'total': [0.000 STEEM, 0.098 SBD, 10152.045284 VESTS]}

becomes

acc.balances
{'available': [0.000 WLS, 0.009999 VESTS],
 'rewards': [0.000 WLS, 0.000000 VESTS],
 'savings': [],
 'total': [0.000 WLS, 0.009999 VESTS]}

on whaleshares.io.

Commit history

All constant STEEM and SBD strings inside beempy are replaced by steem.steem_symbol steem.sbd_symbol properties

Fix prefix parameter for signedtransaction init function and improve steem.refresh_data()

  • commit f829f36
  • Fix test_block unittest
  • Adapt Changelog for next release

Small improvements

Add create_claimed_account to beempy and add correct operationids for WLS

Add claimaccount to beempy and some improvements for steem.sbd_symbol

Fix typo and improved handling of symbols in comment

WLS prefix fixed and next version prepared

Fix unit tests and skip not working tests on testnet

Fix timestamp

Fix get_effective_vesting_shares for python 2.7

Fix unit tests

Several improvements and fixes

Account

  • some code improvements

Graphenerpc

  • small improvement in chain detection

Steem

  • replace_steemit_by_steem option removed from get_config
  • witness_update fixed

Comment

  • Fix docu

chain

  • Waleshares added

Unit test

  • unit tests fixed

Fix unit test for python2.7

Fix unit tests for new amount dict format in test_transactions

Prepare next release

  • commit 433451f
  • add claim_account RC calculation
  • fix Bytes type
  • Improve testnet example
  • test_types improved
Sort:  

Thanks for the contribution, @holger80! I love using beem so I'm happy to see that you are still bringing out regular updates. Adding the claimaccount command to beempy is a great addition, although I'm not sure I'm even able to use it haha.

Anyway I have some feedback regarding some small things: it's probably better to use click.echo() instead of print() as "it has improved support for handling Unicode and binary data that does not fail no matter how badly configured the system is." I am also not sure if you explicitly want to check for the None object, but the code has a lot of if X is not None statements. Maybe it's better to simply use if not X if the situation above doesn't apply. And finally one last nitpick: keep your line width < 80 😋

Looking forward to seeing more awesome updates in the future! Keep up the great work, Holger!


Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Thank you for your review, @amosbastian!

So far this week you've reviewed 20 contributions. Keep up the good work!

This post has been just added as new item to timeline of beem on Steem Projects.

If you want to be notified about new updates from this project, register on Steem Projects and add beem to your favorite projects.

Hi @holger80!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

What is claim/claimed account?

Hey, @holger80!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!