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

Место общения программистов C#
Anonymous
Сопоставление KeyPath в приложении с KeyPath Wallet32 для кошельков Bip44

Сообщение Anonymous »

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

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

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

Код: Выделить всё

KeyPath newKeyPath = new KeyPath("44/0/0/0/0" + nextDerivation);
var childKey = pubkey.Derive(newKeyPath);
Переменная nextDerivsation просто увеличивается с каждой покупкой. Когда производный открытый ключ создается на стороне приложения, он не совпадает с производным открытым ключом в Wallet32. Таким образом, если оплата производится через приложение, Wallet32 ее не принимает.

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

Код: Выделить всё

KeyPath newKeyPath = new KeyPath("44'/0'/0'/0/0" + nextDerivation);
var childKey = pubkey.Derive(newKeyPath);
После этого я получаю сообщение об ошибке «неверный формат ввода». Я не уверен, необходимы ли эти апострофы или нет, но когда я ввожу тот же путь деривации в генератор Bip32, я могу создать те же открытые ключи. Я могу отправить платеж на производный адрес, и Wallet32 его примет.

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

Подробнее здесь: https://stackoverflow.com/questions/272 ... 44-wallets

Вернуться в «C#»