Гайд - Создаем кристально-чистые кошельки для разных монет | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой скрипт на основе слитого?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Гайд Создаем кристально-чистые кошельки для разных монет

lolzteam

Сеньор
Автор темы
😈MORGENSHTERN😈
8 Янв 2023
148
72
0
Сегодня я расскажу вам, про библиотеку hdwallet на питоне, ссылка на саму библиотеку - тык

Сам принцип создания кошелька:
сиськи:
from hdwallet import HDWallet
from hdwallet.utils import generate_entropy
from hdwallet.symbols import BTC as BITCOIN
from typing import Optional
import json


def create_btc():
    STRENGTH: int = 160
    LANGUAGE: str = "english"
    ENTROPY: str = generate_entropy(strength=STRENGTH)
    PASSPHRASE: Optional[str] = None

    hdwallet: HDWallet = HDWallet(symbol=BITCOIN, use_default_path=False)

    hdwallet.from_entropy(
        entropy=ENTROPY, language=LANGUAGE, passphrase=PASSPHRASE
    )

    hdwallet.from_index(84, hardened=True)
    hdwallet.from_index(0, hardened=True)
    hdwallet.from_index(0, hardened=True)
    hdwallet.from_index(0)
    hdwallet.from_index(0)
    btc_wallet = json.dumps(hdwallet.dumps(), indent=4, ensure_ascii=False)
    vallet = []
    data = json.loads(btc_wallet)
    vallet.append(data['mnemonic'])
    vallet.append(data['private_key'])
    vallet.append(data['wif'])
    vallet.append(data['hash'])
    vallet.append(data['addresses']['p2wpkh'])
    return vallet

Данный код создаст нам новый кошелек битка и вернет список с основными данными для входа в кошелек через условный траст, или в будущем вам может пригодиться wif для реализации функции отправки битков или другой монеты. На этом можно было бы закончить тему, но есть пару нюансов, а именно:
Python:
hdwallet.from_index(84, hardened=True)
hdwallet.from_index(0, hardened=True)
hdwallet.from_index(0, hardened=True)
hdwallet.from_index(0)
hdwallet.from_index(0)

вот эти строчки кода, что они означают? Это путь адресов которые нам в итоге выведет функция, помимо этого кошелька, к нему создается очень много дочерних, но дочерние нам не нужны, потому что в условном трасте при входе по сид-фразе нам будет отображаться другой кошелек, чтобы этого избежать - мы должны прописать этот путь индивидуально под каждую монету, для этого:
1. Создаем кошелек для битка используя эту функцию
2. Переходим на сайт - https://iancoleman.io/bip39/ (не реклама)
3. Вставляем полученную сидку и выбираем нужную нам крипту в параметре coin
4. Спускаемся ниже и видим:

Derivation Path​

  • BIP32
  • BIP44
  • BIP49
  • BIP84
  • BIP141
Для многих монет траст берет BIP84 самый первый path
В случае с битком это - m/84'/0'/0'/0/0
В случае с лайткоином это - m/84'/2'/0'/0/0
Получается наш код должен выглядеть так:

pussy:
from hdwallet import HDWallet
from hdwallet.utils import generate_entropy
from hdwallet.symbols import LTC
from typing import Optional
import json


def create_ltc():
    STRENGTH: int = 160
    LANGUAGE: str = "english"
    ENTROPY: str = generate_entropy(strength=STRENGTH)
    PASSPHRASE: Optional[str] = None

    hdwallet: HDWallet = HDWallet(symbol=LTC, use_default_path=False)

    hdwallet.from_entropy(
        entropy=ENTROPY, language=LANGUAGE, passphrase=PASSPHRASE
    )

    hdwallet.from_index(84, hardened=True)
    hdwallet.from_index(2, hardened=True)
    hdwallet.from_index(0, hardened=True)
    hdwallet.from_index(0)
    hdwallet.from_index(0)
    ltc_wallet = json.dumps(hdwallet.dumps(), indent=4, ensure_ascii=True)
    wallet = []
    data = json.loads(ltc_wallet)
    wallet.append(data['mnemonic'])
    wallet.append(data['private_key'])
    wallet.append(data['wif'])
    wallet.append(data['hash'])
    wallet.append(data['addresses']['p2wpkh'])
    return wallet

Спасибо за прочтение данной темы, не будьте вафлей:like
 
Like
  • 4
Реакции: 3 users

bandicuttt

Сеньор
int('xyi')
8 Янв 2023
235
64
28
Модуль действительно очень крутой и гибкий. Правда, если не ошибаюсь, там много проблем с зависимостями от других модулей (несовместимости). Если кому-то нужно уже что-то готовое, с дочерними кошельками для реализации аля банкира смотрите в сторону bipwallet, либа не обновлялась с 2019 года, но там всё из коробки, как мы любим :)
Теме ставлю класс
 
Like
  • 1
Реакции: 1 user
Активность:
Пока что здесь никого нет