Part 1: How To Configure The Steempy CLI Wallet And Upvote An Article With Steem-Python

This tutorial is a continuation on Part 0: How to install steem-python, the official STEEM library for Python. We will be setting up the CLI wallet for with our steem account for future use. After that we will upvote an article with a python script.

What Will I Learn?

  • How to set up your Steempy wallet
  • Change the default node
  • Import your Steem account
  • Set wallet defaults
  • Upvote directly via the blockchain

Requirements

  • steem-python
  • python 3.6

Difficulty

  • Basic

Tutorial

Update default node

By default the node which steempy is connected to is http://steemd.steemit.com, this node has now been depreciated and we will have to update it to make the wallet work again. We will be using the Steemviz node, but this can be replaced with any node to your liking. Adding multiple nodes for redundancy is also possible by separating the urls with a comma ,

steempy set nodes https://rpc.steemviz.com

import steem account

Now you can add your account, replace steempytutorials with your account name
steempy importaccount steempytutorials

Account Passphrase:
Importing active key!
Please provide a password for the new wallet
Passphrase:
Confirm Passphrase:
Importing posting key!
Importing memo key!

You will be asked for your master password. After this you will have to set up a password to encrypt your wallet. This password is needed for any transaction made with the wallet.

You can verify all the imported keys

steempy listaccounts
Screenshot 2018-01-12 17.24.13.png

configure wallet defaults

You can then set up a the default account and upvote weight for any future transactions or upvotes.

steempy set default_account steempytutorials
steempy set default_vote_weight 100

Now verify all the settings with
steempy config

Your wallet is now ready to be used.

Screenshot 2018-01-12 17.29.25.png

Upvoting an article with python

We will upvote 2 excellent articles made by @amosbastian with the python script below. The permlink is how steem identifies articles and you can get it from the url of an article. Removing the beginning of the urls until @. While we will be using 2 preset permlinks you can also use your own. The 100 in steem.vote(permlink,100) indicates the weight of the upvote we will be giving out. You can also alter this to your liking.

from steem import Steem

steem = Steem()
permlink = '@amosbastian/how-to-create-a-simple-reddit-bot-using-praw-1-streaming-and-replying'

try:
   steem.vote(permlink,100)
   print ("Succesfully upvoted!")
except Exception as e:
   print (repr(e))

Save the code as main.py and run it. You will be asked for you wallet passphrase and after that it should upvote the article.

python main.py
Passphrase:
Succesfully upvoted!

While this works, it is annoying to have to enter the passphrase every time. To prevent this you can set your passphrase as an environment variable with:

export UNLOCK='<passphrase>'

Now we will alter the code a bit to accommodate for this.

from steem import Steem
import os

steemPostingKey = os.environ.get('steemPostingKey')
steem = Steem(wif=steemPostingKey)

permlink = '@amosbastian/python-wrapper-for-the-fantasy-premier-league-api'

try:
    steem.vote(permlink,100)
    print ("Succesfully upvoted!")
except Exception as e:
    print (repr(e))

Try it again and it should upvote without asking for your passphrase, succes! You can verify this by going to the article or going over to steemd.com.

Screenshot 2018-01-12 17.56.30.png

Curriculum

Credits

This tutorial was written by @juliank in conjunction with @amosbastian



Posted on Utopian.io - Rewarding Open Source Contributors

H2
H3
H4
3 columns
2 columns
1 column
19 Comments