summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/full_check.yaml1
-rw-r--r--impls/monero.dart/lib/monero.dart18
-rw-r--r--impls/monero.dart/lib/src/checksum_monero.dart4
-rw-r--r--impls/monero.dart/lib/src/generated_bindings_monero.g.dart14
-rw-r--r--impls/monero.dart/pubspec.yaml2
-rw-r--r--impls/monero.ts/checksum_monero.ts4
-rw-r--r--monero_libwallet2_api_c/src/main/cpp/monero_checksum.h4
-rw-r--r--monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp11
-rw-r--r--monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h4
-rw-r--r--patches/monero/0016-add-dummy-device-for-ledger.patch13
10 files changed, 49 insertions, 26 deletions
diff --git a/.github/workflows/full_check.yaml b/.github/workflows/full_check.yaml
index eaec860..19f2786 100644
--- a/.github/workflows/full_check.yaml
+++ b/.github/workflows/full_check.yaml
@@ -467,7 +467,6 @@ jobs:
with:
name: ios ${{ matrix.coin }}
path: release/${{ matrix.coin }}
-
bulk_lib_release:
name: create single release file
runs-on: ubuntu-latest
diff --git a/impls/monero.dart/lib/monero.dart b/impls/monero.dart/lib/monero.dart
index 4fcc970..7b6eac3 100644
--- a/impls/monero.dart/lib/monero.dart
+++ b/impls/monero.dart/lib/monero.dart
@@ -3607,6 +3607,24 @@ bool WalletManager_verifyWalletPassword(
return s;
}
+int WalletManager_queryWalletDevice(
+ WalletManager wm_ptr, {
+ required String keysFileName,
+ required String password,
+ required int kdfRounds,
+ }) {
+ debugStart?.call('MONERO_WalletManager_queryWalletDevice');
+ lib ??= MoneroC(DynamicLibrary.open(libPath));
+ final keysFileName_ = keysFileName.toNativeUtf8().cast<Char>();
+ final password_ = password.toNativeUtf8().cast<Char>();
+ final s = lib!.MONERO_WalletManager_queryWalletDevice(
+ wm_ptr, keysFileName_, password_, kdfRounds);
+ calloc.free(keysFileName_);
+ calloc.free(password_);
+ debugEnd?.call('MONERO_WalletManager_queryWalletDevice');
+ return s;
+}
+
List<String> WalletManager_findWallets(WalletManager wm_ptr,
{required String path}) {
debugStart?.call('MONERO_WalletManager_findWallets');
diff --git a/impls/monero.dart/lib/src/checksum_monero.dart b/impls/monero.dart/lib/src/checksum_monero.dart
index 4ab72a3..b94fb5a 100644
--- a/impls/monero.dart/lib/src/checksum_monero.dart
+++ b/impls/monero.dart/lib/src/checksum_monero.dart
@@ -1,4 +1,4 @@
// ignore_for_file: constant_identifier_names
-const String wallet2_api_c_h_sha256 = "e8db0ef0324a153f5e3ecca4c0db23c54f4576e84988f04bd4f11c1142f9d7ad";
-const String wallet2_api_c_cpp_sha256 = "dca52ac9ee009fda9fb5726543a454885e61d8eb74fb33112288029ed625bec5-b089f9ee69924882c5d14dd1a6991deb05d9d1cd";
+const String wallet2_api_c_h_sha256 = "198a27486ce4f014b737f52ec2879a90838c3b3ca088de8dc7d55b79a10f4a5b";
+const String wallet2_api_c_cpp_sha256 = "22b0c9dd542fb55edfe9e17da67e97ddf5f80bcdd3e126e1bd64cce54234bde1-b089f9ee69924882c5d14dd1a6991deb05d9d1cd";
const String wallet2_api_c_exp_sha256 = "c8913ac41068f67b57c9b0a3c7dd8973e3c1273b66c2ff0aadb0003931da748c";
diff --git a/impls/monero.dart/lib/src/generated_bindings_monero.g.dart b/impls/monero.dart/lib/src/generated_bindings_monero.g.dart
index 039fbf9..cd2124b 100644
--- a/impls/monero.dart/lib/src/generated_bindings_monero.g.dart
+++ b/impls/monero.dart/lib/src/generated_bindings_monero.g.dart
@@ -4911,14 +4911,14 @@ class MoneroC {
bool Function(ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>,
ffi.Pointer<ffi.Char>, bool, int)>();
- bool MONERO_WalletManager_queryWalletDevice(
- int device_type,
+ int MONERO_WalletManager_queryWalletDevice(
+ ffi.Pointer<ffi.Void> wm_ptr,
ffi.Pointer<ffi.Char> keys_file_name,
ffi.Pointer<ffi.Char> password,
int kdf_rounds,
) {
return _MONERO_WalletManager_queryWalletDevice(
- device_type,
+ wm_ptr,
keys_file_name,
password,
kdf_rounds,
@@ -4927,15 +4927,15 @@ class MoneroC {
late final _MONERO_WalletManager_queryWalletDevicePtr = _lookup<
ffi.NativeFunction<
- ffi.Bool Function(
- ffi.Int,
+ ffi.Int Function(
+ ffi.Pointer<ffi.Void>,
ffi.Pointer<ffi.Char>,
ffi.Pointer<ffi.Char>,
ffi.Uint64)>>('MONERO_WalletManager_queryWalletDevice');
late final _MONERO_WalletManager_queryWalletDevice =
_MONERO_WalletManager_queryWalletDevicePtr.asFunction<
- bool Function(
- int, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>, int)>();
+ int Function(ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>,
+ ffi.Pointer<ffi.Char>, int)>();
ffi.Pointer<ffi.Char> MONERO_WalletManager_findWallets(
ffi.Pointer<ffi.Void> wm_ptr,
diff --git a/impls/monero.dart/pubspec.yaml b/impls/monero.dart/pubspec.yaml
index 174a781..2a32efe 100644
--- a/impls/monero.dart/pubspec.yaml
+++ b/impls/monero.dart/pubspec.yaml
@@ -12,4 +12,4 @@ dependencies:
dev_dependencies:
lints: ^5.0.0
test: ^1.24.0
- ffigen: ^14.0.0 \ No newline at end of file
+ ffigen: ^14.0.0
diff --git a/impls/monero.ts/checksum_monero.ts b/impls/monero.ts/checksum_monero.ts
index 88406a0..d421d01 100644
--- a/impls/monero.ts/checksum_monero.ts
+++ b/impls/monero.ts/checksum_monero.ts
@@ -1,5 +1,5 @@
export const moneroChecksum = {
- wallet2_api_c_h_sha256: "e8db0ef0324a153f5e3ecca4c0db23c54f4576e84988f04bd4f11c1142f9d7ad",
- wallet2_api_c_cpp_sha256: "dca52ac9ee009fda9fb5726543a454885e61d8eb74fb33112288029ed625bec5-b089f9ee69924882c5d14dd1a6991deb05d9d1cd",
+ wallet2_api_c_h_sha256: "198a27486ce4f014b737f52ec2879a90838c3b3ca088de8dc7d55b79a10f4a5b",
+ wallet2_api_c_cpp_sha256: "22b0c9dd542fb55edfe9e17da67e97ddf5f80bcdd3e126e1bd64cce54234bde1-b089f9ee69924882c5d14dd1a6991deb05d9d1cd",
wallet2_api_c_exp_sha256: "c8913ac41068f67b57c9b0a3c7dd8973e3c1273b66c2ff0aadb0003931da748c",
}
diff --git a/monero_libwallet2_api_c/src/main/cpp/monero_checksum.h b/monero_libwallet2_api_c/src/main/cpp/monero_checksum.h
index 20cbeae..5a9d56e 100644
--- a/monero_libwallet2_api_c/src/main/cpp/monero_checksum.h
+++ b/monero_libwallet2_api_c/src/main/cpp/monero_checksum.h
@@ -1,6 +1,6 @@
#ifndef MONEROC_CHECKSUMS
#define MONEROC_CHECKSUMS
-const char * MONERO_wallet2_api_c_h_sha256 = "e8db0ef0324a153f5e3ecca4c0db23c54f4576e84988f04bd4f11c1142f9d7ad";
-const char * MONERO_wallet2_api_c_cpp_sha256 = "dca52ac9ee009fda9fb5726543a454885e61d8eb74fb33112288029ed625bec5-b089f9ee69924882c5d14dd1a6991deb05d9d1cd";
+const char * MONERO_wallet2_api_c_h_sha256 = "198a27486ce4f014b737f52ec2879a90838c3b3ca088de8dc7d55b79a10f4a5b";
+const char * MONERO_wallet2_api_c_cpp_sha256 = "22b0c9dd542fb55edfe9e17da67e97ddf5f80bcdd3e126e1bd64cce54234bde1-b089f9ee69924882c5d14dd1a6991deb05d9d1cd";
const char * MONERO_wallet2_api_c_exp_sha256 = "c8913ac41068f67b57c9b0a3c7dd8973e3c1273b66c2ff0aadb0003931da748c";
#endif
diff --git a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp
index 407d700..0cc2f9f 100644
--- a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp
+++ b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp
@@ -1767,10 +1767,15 @@ bool MONERO_WalletManager_verifyWalletPassword(void* wm_ptr, const char* keys_fi
Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr);
return wm->verifyWalletPassword(std::string(keys_file_name), std::string(password), no_spend_key, kdf_rounds);
}
+
// virtual bool queryWalletDevice(Wallet::Device& device_type, const std::string &keys_file_name, const std::string &password, uint64_t kdf_rounds = 1) const = 0;
-// bool MONERO_WalletManager_queryWalletDevice(int device_type, const char* keys_file_name, const char* password, uint64_t kdf_rounds) {
-// return Monero::WalletManagerFactory::getWalletManager()->queryWalletDevice(device_type, std::string(keys_file_name), std::string(password), kdf_rounds);
-//}
+int MONERO_WalletManager_queryWalletDevice(void* wm_ptr, const char* keys_file_name, const char* password, uint64_t kdf_rounds) {
+ Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr);
+ Monero::Wallet::Device device_type;
+ wm->queryWalletDevice(device_type, std::string(keys_file_name), std::string(password), kdf_rounds);
+ return device_type;
+}
+
// virtual std::vector<std::string> findWallets(const std::string &path) = 0;
const char* MONERO_WalletManager_findWallets(void* wm_ptr, const char* path, const char* separator) {
Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr);
diff --git a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h
index 6e691c8..143da40 100644
--- a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h
+++ b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h
@@ -948,7 +948,7 @@ extern ADDAPI bool MONERO_WalletManager_walletExists(void* wm_ptr, const char* p
// virtual bool verifyWalletPassword(const std::string &keys_file_name, const std::string &password, bool no_spend_key, uint64_t kdf_rounds = 1) const = 0;
extern ADDAPI bool MONERO_WalletManager_verifyWalletPassword(void* wm_ptr, const char* keys_file_name, const char* password, bool no_spend_key, uint64_t kdf_rounds);
// virtual bool queryWalletDevice(Wallet::Device& device_type, const std::string &keys_file_name, const std::string &password, uint64_t kdf_rounds = 1) const = 0;
-extern ADDAPI bool MONERO_WalletManager_queryWalletDevice(int device_type, const char* keys_file_name, const char* password, uint64_t kdf_rounds);
+extern ADDAPI int MONERO_WalletManager_queryWalletDevice(void* wm_ptr, const char* keys_file_name, const char* password, uint64_t kdf_rounds);
// virtual std::vector<std::string> findWallets(const std::string &path) = 0;
extern ADDAPI const char* MONERO_WalletManager_findWallets(void* wm_ptr, const char* path, const char* separator);
// virtual std::string errorString() const = 0;
@@ -1039,4 +1039,4 @@ extern ADDAPI const char* MONERO_checksum_wallet2_api_c_exp();
#ifdef __cplusplus
}
-#endif \ No newline at end of file
+#endif
diff --git a/patches/monero/0016-add-dummy-device-for-ledger.patch b/patches/monero/0016-add-dummy-device-for-ledger.patch
index d4ab5fe..364d6fd 100644
--- a/patches/monero/0016-add-dummy-device-for-ledger.patch
+++ b/patches/monero/0016-add-dummy-device-for-ledger.patch
@@ -1,4 +1,4 @@
-From 6b40191d35df998280e1d6e19ff9bf4bce54d5bf Mon Sep 17 00:00:00 2001
+From 77f328ba6befb9b964f764a27f8a03b71bf9095d Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Wed, 26 Jun 2024 15:04:38 +0200
Subject: [PATCH 16/16] add dummy device for ledger
@@ -12,10 +12,10 @@ Subject: [PATCH 16/16] add dummy device for ledger
src/device/device_io_dummy.hpp | 74 ++++++++++++++++++
src/device/device_ledger.cpp | 6 +-
src/device/device_ledger.hpp | 7 +-
- src/wallet/api/wallet.cpp | 93 +++++++++++++++++++++++
+ src/wallet/api/wallet.cpp | 94 +++++++++++++++++++++++
src/wallet/api/wallet.h | 18 +++++
src/wallet/api/wallet2_api.h | 12 +++
- 11 files changed, 356 insertions(+), 21 deletions(-)
+ 11 files changed, 357 insertions(+), 21 deletions(-)
create mode 100644 src/device/device_io_dummy.cpp
create mode 100644 src/device/device_io_dummy.hpp
@@ -414,7 +414,7 @@ index 03058c4f1..506f27c4a 100644
unsigned char buffer_send[BUFFER_SEND_SIZE];
unsigned int length_recv;
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
-index a307d35a7..3ead385ec 100644
+index 8bdd75a5a..09f91c5e2 100644
--- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp
@@ -49,6 +49,9 @@
@@ -427,7 +427,7 @@ index a307d35a7..3ead385ec 100644
using namespace std;
using namespace cryptonote;
-@@ -3298,4 +3301,94 @@ uint64_t WalletImpl::getBytesSent()
+@@ -3299,4 +3302,95 @@ uint64_t WalletImpl::getBytesSent()
return m_wallet->get_bytes_sent();
}
@@ -502,6 +502,7 @@ index a307d35a7..3ead385ec 100644
+ return;
+ #else
+ hw::io::device_io_dummy::receivedFromDevice = static_cast<unsigned char *>(malloc(len));
++ hw::io::device_io_dummy::receivedFromDeviceLength = len;
+ memset(hw::io::device_io_dummy::receivedFromDevice, 0, len);
+ memcpy(hw::io::device_io_dummy::receivedFromDevice, data, len);
+ hw::io::device_io_dummy::waitsForDeviceReceive = false;
@@ -575,5 +576,5 @@ index 2bbb32c8b..c8d6bb179 100644
/**
--
-2.39.2
+2.45.1.windows.1