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(); + final password_ = password.toNativeUtf8().cast(); + 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 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.Pointer, ffi.Pointer, bool, int)>(); - bool MONERO_WalletManager_queryWalletDevice( - int device_type, + int MONERO_WalletManager_queryWalletDevice( + ffi.Pointer wm_ptr, ffi.Pointer keys_file_name, ffi.Pointer 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.Pointer, ffi.Pointer, ffi.Uint64)>>('MONERO_WalletManager_queryWalletDevice'); late final _MONERO_WalletManager_queryWalletDevice = _MONERO_WalletManager_queryWalletDevicePtr.asFunction< - bool Function( - int, ffi.Pointer, ffi.Pointer, int)>(); + int Function(ffi.Pointer, ffi.Pointer, + ffi.Pointer, int)>(); ffi.Pointer MONERO_WalletManager_findWallets( ffi.Pointer 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(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(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 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(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 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 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(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