mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-12-22 19:49:22 +00:00
68926c0a33
Some checks are pending
Cache Dependencies / test (push) Waiting to run
* Add Litecoin Hardware Wallet Creation * Add Litecoin Hardware Wallet Creation * Fix Bitcoin not sending on Ledger * Fixes to sending LTC using Ledger * CW-679 Fix merge conflicts * CW-679 Fix merge conflicts * CW-679 Minor fixes * CW-679 Add derivation Path of change address * ledger flutter plus refactoring * ledger flutter plus refactoring * ledger flutter plus refactoring * Ups :| * Ups :| I forgot USB * Handle BT Off * Fix Issue with A14 and USB * Small Ledger Quality of life improvements * Small Ledger Quality of life improvements * Small Ledger Quality of life improvements * Small Ledger Quality of life improvements * Small Ledger Quality of life improvements * Small Ledger Quality of life improvements * Small Ledger Quality of life improvements * Pls work * Pls work * Pls work * Pls work * Fix overpopulation * Fix ble device detection and support for Stax and Flex * clean up pubspec * clean up * MWeb merge fix * MWeb merge fix * Fix Merge conflicts * Fix Requested changes
45 lines
1.4 KiB
Dart
45 lines
1.4 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:bitcoin_base/bitcoin_base.dart';
|
|
import 'package:blockchain_utils/blockchain_utils.dart';
|
|
import 'package:cw_bitcoin/utils.dart';
|
|
import 'package:cw_core/hardware/hardware_account_data.dart';
|
|
import 'package:ledger_bitcoin/ledger_bitcoin.dart';
|
|
import 'package:ledger_flutter_plus/ledger_flutter_plus.dart';
|
|
|
|
class BitcoinHardwareWalletService {
|
|
BitcoinHardwareWalletService(this.ledgerConnection);
|
|
|
|
final LedgerConnection ledgerConnection;
|
|
|
|
Future<List<HardwareAccountData>> getAvailableAccounts(
|
|
{int index = 0, int limit = 5}) async {
|
|
final bitcoinLedgerApp = BitcoinLedgerApp(ledgerConnection);
|
|
|
|
final masterFp = await bitcoinLedgerApp.getMasterFingerprint();
|
|
|
|
final accounts = <HardwareAccountData>[];
|
|
final indexRange = List.generate(limit, (i) => i + index);
|
|
|
|
for (final i in indexRange) {
|
|
final derivationPath = "m/84'/0'/$i'";
|
|
final xpub =
|
|
await bitcoinLedgerApp.getXPubKey(derivationPath: derivationPath);
|
|
Bip32Slip10Secp256k1 hd =
|
|
Bip32Slip10Secp256k1.fromExtendedKey(xpub).childKey(Bip32KeyIndex(0));
|
|
|
|
final address = generateP2WPKHAddress(
|
|
hd: hd, index: 0, network: BitcoinNetwork.mainnet);
|
|
|
|
accounts.add(HardwareAccountData(
|
|
address: address,
|
|
accountIndex: i,
|
|
derivationPath: derivationPath,
|
|
masterFingerprint: masterFp,
|
|
xpub: xpub,
|
|
));
|
|
}
|
|
|
|
return accounts;
|
|
}
|
|
}
|