diff options
Diffstat (limited to 'impls/monero.dart/lib/src/ledger.dart')
| -rw-r--r-- | impls/monero.dart/lib/src/ledger.dart | 43 |
1 files changed, 7 insertions, 36 deletions
diff --git a/impls/monero.dart/lib/src/ledger.dart b/impls/monero.dart/lib/src/ledger.dart index fe2e3df..166bcf4 100644 --- a/impls/monero.dart/lib/src/ledger.dart +++ b/impls/monero.dart/lib/src/ledger.dart @@ -3,17 +3,13 @@ import 'dart:ffi'; import 'dart:typed_data'; import 'package:ffi/ffi.dart'; -import 'package:ledger_flutter/src/ledger.dart'; -import 'package:ledger_flutter/src/ledger/ledger_operation.dart'; -import 'package:ledger_flutter/src/models/ledger_device.dart'; -import 'package:ledger_flutter/src/utils/buffer.dart'; +import 'package:ledger_flutter_plus/ledger_flutter_plus.dart'; import 'package:monero/monero.dart' as monero; Timer? _ledgerExchangeTimer; String _lastLedgerRequest = ''; -void enableLedgerExchange( - monero.wallet ptr, Ledger ledger, LedgerDevice device) { +void enableLedgerExchange(monero.wallet ptr, LedgerConnection connection) { _ledgerExchangeTimer = Timer.periodic(Duration(milliseconds: 1), (_) async { final ledgerRequestLength = monero.Wallet_getSendToDeviceLength(ptr); final ledgerRequest = monero.Wallet_getSendToDevice(ptr) @@ -22,7 +18,7 @@ void enableLedgerExchange( if (ledgerRequestLength > 0 && _lastLedgerRequest != ledgerRequest.join()) { _lastLedgerRequest = ledgerRequest.join(); - final response = await exchange(ledger, device, ledgerRequest); + final response = await exchange(connection, ledgerRequest); final Pointer<Uint8> result = malloc<Uint8>(response.length); for (var i = 0; i < response.length; i++) { @@ -42,43 +38,18 @@ void disableLedgerExchange() { _ledgerExchangeTimer?.cancel(); } -Future<Uint8List> exchange( - Ledger ledger, LedgerDevice device, Uint8List data) async { - return ledger.sendOperation<Uint8List>( - device, - ExchangeOperation( - cla: 0x00, - ins: 0x00, - p1: 0x00, - p2: 0x00, - inputData: data, - ), - ); -} +Future<Uint8List> exchange(LedgerConnection connection, Uint8List data) async => + connection.sendOperation<Uint8List>(ExchangeOperation(data)); class ExchangeOperation extends LedgerOperation<Uint8List> { - final int cla; - final int ins; - final int p1; - final int p2; final Uint8List inputData; - ExchangeOperation({ - required this.cla, - required this.ins, - required this.p1, - required this.p2, - required this.inputData, - }); + ExchangeOperation(this.inputData); @override Future<Uint8List> read(ByteDataReader reader) async => reader.read(reader.remainingLength); @override - Future<List<Uint8List>> write(ByteDataWriter writer) async { - writer.write(inputData); - - return [writer.toBytes()]; - } + Future<List<Uint8List>> write(ByteDataWriter writer) async => [inputData]; } |
