summaryrefslogtreecommitdiff
path: root/impls/monero.dart/lib/src/ledger.dart
diff options
context:
space:
mode:
Diffstat (limited to 'impls/monero.dart/lib/src/ledger.dart')
-rw-r--r--impls/monero.dart/lib/src/ledger.dart43
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];
}