Сопоставление KeyPath в приложении с Wallet32 Keypath для кошельков Bip44

У меня есть приложение, в котором я создаю HD-кошелек с парольной фразой и сохраняю открытый мастер-ключ в базе данных для пользователя.

Затем я хочу, чтобы пользователь мог создать резервную копию кошелька в своем собственном кошельке, в этом случае я использую Wallet32. Я восстанавливаю учетную запись в Wallet32, которая использует путь ключа m/44'/0'/0'/

На стороне моего приложения я создаю путь к ключу так (в С#):

KeyPath newKeyPath = new KeyPath("44/0/0/0/0" + nextDerivation);
var childKey = pubkey.Derive(newKeyPath);

Переменная nextDerivsation просто увеличивается с каждой покупкой. Когда производный открытый ключ создается на стороне приложения, он не совпадает с производным открытым ключом в wallet32. Так вот, если оплата производится через приложение, Wallet32 ее не забирает.

Я использую библиотеку С# NBitcoin. Когда я пытаюсь добавить апострофы в строку keyPath следующим образом:

KeyPath newKeyPath = new KeyPath("44'/0'/0'/0/0" + nextDerivation);
var childKey = pubkey.Derive(newKeyPath);

Затем я получаю сообщение об ошибке «неверный формат ввода». Я не уверен, нужны ли эти апострофы или нет, но когда я ввожу тот же путь вывода в генератор Bip32, я могу создать те же открытые ключи. Я могу отправить платеж на полученный адрес, и wallet32 заберет его.

Может ли кто-нибудь указать мне правильное направление, что мне нужно использовать для KeyPath в библиотеке NBitcoin, чтобы получить те же результаты?

Ответы (1)

Ответ на stackoverflow

Краткий ответ: теперь реализовано обозначение «44'/0'», просто обновите свой пакет NBitcoin.