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

in cryptobrewmaster •  4 months ago 

Якщо на вашому аккаунті в 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 і цілком можливо що поточний метод можливо поліпшити. Буду вдячний за будь-які коментарі на цю тему.


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


Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  
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

Nice one! Have a beer my friend

!BEER

Posted using Partiko iOS


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.

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