update for beem - preparing beem for HF 20 and delegate added to beempy

in #utopian-io7 years ago (edited)

Repository

https://github.com/holgern/beem


beem-logo.png

beem is a python library for steem. beem has now 489 unit tests and a coverage of 73 %. The current version is 0.19.56.
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

Bug Fixes

Account.get_voting_power() method Not Functional on HF20 RPC Nodes

The post about the bug can be found here.
get_voting_power was fixed in commit c01e10d
by using:

  • self["voting_manabar"]["current_mana"]
  • self["voting_manabar"]["last_update_time"]

Example with working get_voting_power():

from beem import Steem
from beem.account import Account

stm = Steem(node="https://api.steemit.com")
acc = Account("holger80", steem_instance=stm)
acc.get_voting_power()
95.37947158587963
stm
<Steem node=https://api.steemit.com, nobroadcast=False>
stm.get_blockchain_version()
'0.20.2'

New Features

delegation added to beempy

Delegation can be done by

beempy delegate -a <account> <amount> <to_account>

amount can be VESTS or STEEM and must be quoted with ".
Examples:

beempy delegate -a beembot "1 STEEM" holger80
beempy delegate -a beemboot "1000 VESTS" holger80

It is also possible to create steemconnect links by adding -l before delegate:

beempy -l delegate -a beembot "1 STEEM" holger80

This results in https://steemconnect.com/sign/delegate_vesting_shares?delegator=beembot&delegatee=holger80&vesting_shares=2021.090606+VESTS

Connection to HF20 testnet

The asset symbols were fixed for the HF20 testnet. It can be used by:

from beem import Steem
stm = Steem(node="https://testnet.steemitdev.com")
stm.chain_params["chain_id"] = "46d82ab7d8db682eb1959aed0ada039a6d49afa1602491f93dde9cac3e8e6c32"

Nodelist update

All nodes in nodelist were updated.

Unit tests

All unit tests were fixed. As non-appbase nodes are no longer available, all unit tests which uses non-appbase nodes were failing. This was fixed.

Constants fixed

  • STEEM_VOTING_MANA_REGENERATION_SECONDS and STEEM_REVERSE_AUCTION_WINDOW_SECONDS_HF20 were added.

Commit history

STEEM_VOTING_MANA_REGENERATION_SECONDS is used for regenerated_vp calculation

Fix constants and unittests

Fix unit tests

Improved several functions and nodelist updated

CONSTANTS

  • STEEM_REVERSE_AUCTION_WINDOW_SECONDS_HF20 added

Nodelist

  • nodes information updated

Steem

  • get_dust_threshold() improved and get_config used
  • hardfork checks improved
  • hardfork property improved by using get_hardfork_properties function

Changelog.rst added and Issue #80 fixed

Fix remaining unit tests

Fix more unit tests for appbase and upcoming HF20

Remove non appbase nodes and related tests from all unit tests Improve blockchain.stream() for appbase

Fix warnings

Fix flake8 and revert changes to sbd_to_rshares

Add delegate to beempy and some HF20 fixes


GitHub Account

https://github.com/holgern/


If you like what I'm doing, please consider @holger80 as one of your witnesses (steemconnect).

Sort:  

Greetings, great updates as usual.

One question, though, it seems appbase nodes supports both voting_manabar dict and the old last_vote_time and voting_power fields to keep the backward compability. Why beem was failing before this fix?


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]

It failed as not all nodes have both dicts. Nodes running 0.19.12 have voting_power and nodes running 0.20.2 have only voting_manabar.

I didn't try with all of them but https://api.steemit.com had both of them. (v0.20.2)

Only when using condenser api.
when using acc.steem.rpc.find_accounts({'accounts': ["holger80"]}, api="database") it is missing.

Thank you very much for all the work you put into beem :D
I really enjoy using (and sometimes even improving) it ;)

Thank you for improving beem :).

Thank you for the quick fixes !
I had nightmares about steeping down from the podium in your curation contest :D

Joke aside, Beem is the best there is ! Thanks a lot for your hard 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 UA account score is currently 5.755 which ranks you at #389 across all Steem accounts.
Your rank has improved 35 places in the last three days (old rank 424).

In our last Algorithmic Curation Round, consisting of 426 contributions, your post is ranked at #50.

Evaluation of your UA score:
  • You've built up a nice network.
  • The readers appreciate your great work!
  • Try to improve on your user engagement! The more interesting interaction in the comments of your post, the better!

Feel free to join our @steem-ua Discord server