Як налаштувати реінвестування CBM та інших SteemEngine токенів за допомогою Python

Якщо на вашому аккаунті в Steem-Engine є деяка кількість CBM чи інших Steem-Engine токенів і вам набридло панькатись з ними вручну, то чому б вам не автоматизувати свої дії за допомогою скриптів на Python? Якщо ви досі цього не зробили, то мій пост саме для Вас! :)

Підготовка

  1. Заварюємо чашечку кави або відкриваємо пляшку гарного пива (так буде краще..повірте на слово.. :) )
  2. Перевіряємо чи встановлений python на тому компьютері чи сервері, де будуть працювати скрипти. Для цього відкриваємо термінал:
  • Linux: Ctrl-Alt-T, Ctrl-Alt-F2
  • Windows: Win+R > набираємо powershell > Enter/OK
  • MacOS: Finder > Applications > Utilities > Terminal
та набираємо там:
python --version для перевірки навності 2-ої версії чи
python3 --version - для 3-ої версії Python

Далі можливі 3 варінти:
а) комп видає щось на зразок:
n2fujt.png
значить все гаразд!
б) комп не розуміє якого біса вам від нього треба. Спокійно встановлюємо собі Python
в) закінчилась кава чи пиво. Повторюємо пунт 1.

Далі у вікні терміналу встановлюємо залежності

pip3 install beem steemengine -U

та налаштовуємо гаманець:


beempy createwallet
beempy addkey

Створення скриптів

У мене їх два: перший для отримання токенів на свій баланс (автоматизація СLAIM), другий - для інвестування (автоматизація STAKE). Автором скриптів є @@@holger80, про які він написав ще півроку тому назад ось тут і ось там.

Просто за допомогою простого редактора (типу notepad) створюємо собі два файла, "claim_all_tokens.py" та "stake_my_tokens.py" з таким змістом:

claim_all_tokens.py


from beem import Steem
from beem.nodelist import NodeList
import json
import requests

if name == "main":

username = "ВАШ_АККАУНТ"
wif = "АКТИВНИЙ_КЛЮЧ"

url = "http://scot-api.steem-engine.com/@" + username
r = requests.get(url)
result = r.json()

json_data = []
for token in result:
    scot = result[token]
    if int(scot["pending_token"]) > 0:
        json_data.append({"symbol": token})
        print("%s can be claimed" % (token))

if len(json_data) > 0:
    nodes = NodeList()
    nodes.update_nodes()
    stm = Steem(nodes.get_nodes())    
    stm = Steem(node=nodes.get_nodes(), keys=[wif])
    stm.custom_json("scot_claim_token", json_data, required_posting_auths=[username])
    
else:
    print("Nothing to claim")

stake_my_tokens.py

from beem import Steem
from beem.nodelist import NodeList
from steemengine.wallet import Wallet
import json

if name == "main":

scot_token = ["CBM","DBLOG", "NEOXAG", "LEO", "UFM", "BUILD", "GG", "PAL", "INT", "ASS",
              "STEEMSPEAK", "GEEK", "BEER", "BATTLE", "MEME", "TRDO", "SAND",
              "VITP"]

username = "ВАШ_АККАУНТ"
# Set either the active wif or the wallet password
wif = "ВАШ_КЛЮЧ"
wallet_password = None
wallet = Wallet(username)
stake_token = {}
for scot in scot_token:
    data = wallet.get_token(scot)
    if data is not None and data["balance"] is not None:
        balance = float(wallet.get_token(scot)["balance"])
        if balance > 0:
            stake_token[scot] = balance
if len(stake_token) > 0:
    
    print("Will stake the following token %s" % str(stake_token))
        
    nodes = NodeList()
    nodes.update_nodes()
    stm = Steem(nodes.get_nodes())    
    #pwd = getpass.getpass("Enter Walletpassword or posting key for %s" % username) 
    
    if wallet_password is not None:
        stm.unlock(wallet_password)
    else:
        stm = Steem(node=nodes.get_nodes(), keys=[wif])
    json_data = []
    for token in stake_token:
        
        contract_payload = {"symbol":token.upper(),"quantity":str(stake_token[token]), "to":username}
        json_data.append({"contractName":"tokens","contractAction":"stake",
                             "contractPayload":contract_payload})
    # print(json_data)
    tx = stm.custom_json("ssc-mainnet1", json_data, required_auths=[username])
    print(tx)
else:
    print("Nothing to stake")

В самих файлах потрібно потім вставити назву свого Steemit аккаунта , активний ключ, та свій набір токенів для стейкінгу.

Перевірити скрипти можна в терміналі за домогою команд:

python3 claim_all_tokens.py

та

python3 stake_my_tokens.py

Автоматизація запуску

Якщо у вас Linux або MacOS, в терміналі набираємо команду crontab -e та виставляємо там проміжок часу який вам більше для вподоби. У мене прописано так:

30 */6 * * * python3 /home/projects/crypto-bots/steem-engine/stake_my_tokens.py
0 */6 * * * python3 /home/projects/crypto-bots/steem-engine/claim_all_tokens.py

Тобто, скрипти запускаються 4 рази на добу з інтервалом півгодини між собою.

Користувачам Windows знадобиться заварити собі ще одну чашку кафи чи відкрити ще одну пляшку пива, оскільки в цій операційній системі все не так просто...

Потрібно буде налаштувати Task Scheduler. Ось невеличке відео, яке й знайшов в неті на цю тему:

Всім власникам токенів CBM, раджу також в steemauto.com налаштувати curation trail на @cryptobrewmaster

От і все! Сам я тільки почав вивчати Python і цілком можливо що поточний метод можливо поліпшити. Буду вдячний за будь-які коментарі на цю тему.


Гарного Вам настрою!


Sort:  
UpvoteBank
Your upvote bank
__2.jpgThis post have been upvoted by the @UpvoteBank service. Want to know more and receive "free" upvotes click here

Thanks for using eSteem!
Your post has been voted as a part of eSteem encouragement program. Keep up the good work!
Dear reader, Install Android, iOS Mobile app or Windows, Mac, Linux Surfer app, if you haven't already!
Learn more: https://esteem.app
Join our discord: https://discord.me/esteem


Hey @stranger27, here is a little bit of BEER from @cryptobrewmaster for you. Enjoy it!

Learn how to earn FREE BEER each day by staking.

Корисний допис, зберіг собі в закладки. Може колись згодиться ))