Як налаштувати реінвестування CBM та інших SteemEngine токенів за допомогою Python
Якщо на вашому аккаунті в Steem-Engine є деяка кількість CBM чи інших Steem-Engine токенів і вам набридло панькатись з ними вручну, то чому б вам не автоматизувати свої дії за допомогою скриптів на Python? Якщо ви досі цього не зробили, то мій пост саме для Вас! :)
Підготовка
- Заварюємо чашечку кави або відкриваємо пляшку гарного пива (так буде краще..повірте на слово.. :) )
- Перевіряємо чи встановлений 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 варінти:
а) комп видає щось на зразок:
значить все гаразд!
б) комп не розуміє якого біса вам від нього треба. Спокійно встановлюємо собі 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
if name == "main": stake_my_tokens.py if name == "main": В самих файлах потрібно потім вставити назву свого Steemit аккаунта , активний ключ, та свій набір токенів для стейкінгу. Перевірити скрипти можна в терміналі за домогою команд: Якщо у вас Linux або MacOS, в терміналі набираємо команду Користувачам Windows знадобиться заварити собі ще одну чашку кафи чи відкрити ще одну пляшку пива, оскільки в цій операційній системі все не так просто... Потрібно буде налаштувати Task Scheduler. Ось невеличке відео, яке й знайшов в неті на цю тему:
from beem import Steem
from beem.nodelist import NodeList
import json
import requests
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")
from beem import Steem
from beem.nodelist import NodeList
from steemengine.wallet import Wallet
import json
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")
python3 claim_all_tokens.py
та
python3 stake_my_tokens.py
Автоматизація запуску
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 рази на добу з інтервалом півгодини між собою.
Всім власникам токенів CBM, раджу також в steemauto.com налаштувати curation trail на @cryptobrewmaster
От і все! Сам я тільки почав вивчати Python і цілком можливо що поточний метод можливо поліпшити. Буду вдячний за будь-які коментарі на цю тему.
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
View or trade
BEER
.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.
Корисний допис, зберіг собі в закладки. Може колись згодиться ))