From 8ded127c28eedfcd4af4bd538082fb4005f0aae0 Mon Sep 17 00:00:00 2001 From: Pravdyvy Date: Wed, 10 Jun 2026 13:38:23 +0300 Subject: [PATCH] fix: rewritted into QStringLists --- src/i_logos_execution_zone_wallet_module.h | 26 ++--- src/logos_execution_zone_wallet_module.cpp | 111 +++++++++++---------- src/logos_execution_zone_wallet_module.h | 26 ++--- 3 files changed, 84 insertions(+), 79 deletions(-) diff --git a/src/i_logos_execution_zone_wallet_module.h b/src/i_logos_execution_zone_wallet_module.h index ee528a9..1a7147b 100644 --- a/src/i_logos_execution_zone_wallet_module.h +++ b/src/i_logos_execution_zone_wallet_module.h @@ -88,28 +88,28 @@ public: virtual QString register_public_account(const QString& account_id_hex) = 0; virtual QString register_private_account(const QString& account_id_hex) = 0; - virtual QJsonArray serialization_helper(const QJsonArray& input_data) = 0; + virtual QList serialization_helper(const QList& input_data) = 0; - virtual QJsonArray authenticated_transfer_elf() = 0; - virtual QJsonArray token_elf() = 0; - virtual QJsonArray amm_elf() = 0; - virtual QJsonArray ata_elf() = 0; + virtual QList authenticated_transfer_elf() = 0; + virtual QList token_elf() = 0; + virtual QList amm_elf() = 0; + virtual QList ata_elf() = 0; virtual QString send_generic_public_transaction( const QList& account_ids, - const QJsonArray& signing_requirements, - const QJsonArray& instruction, - const QJsonArray& program_elf, - const QJsonArray& program_dependencies + const QList& signing_requirements, + const QList& instruction, + const QList& program_elf, + const QList& program_dependencies ) = 0; virtual QString send_generic_private_transaction( const QList& account_ids, - const QJsonArray& instruction, - const QJsonArray& program_elf, - const QJsonArray& program_dependencies + const QList& instruction, + const QList& program_elf, + const QList& program_dependencies ) = 0; virtual QString send_program_deployment_transaction( - const QJsonArray& program_elf + const QList& program_elf ) = 0; // Wallet Lifecycle diff --git a/src/logos_execution_zone_wallet_module.cpp b/src/logos_execution_zone_wallet_module.cpp index 0a2b2bc..24c7db2 100644 --- a/src/logos_execution_zone_wallet_module.cpp +++ b/src/logos_execution_zone_wallet_module.cpp @@ -753,74 +753,78 @@ QString LogosExecutionZoneWalletModule::register_private_account(const QString& return resultJson; } -QJsonArray LogosExecutionZoneWalletModule::token_elf() { +QList LogosExecutionZoneWalletModule::token_elf() { FfiProgram ffi_program {}; WalletFfiError error = wallet_ffi_token_elf(&ffi_program); if (error != SUCCESS) { qWarning() << "token_elf: wallet FFI error " << error; - return QJsonArray(); + return QList(); } - QJsonArray result; + QList result; + result.reserve(ffi_program.elf_size); for (size_t i = 0; i < ffi_program.elf_size; ++i) { - result.append(static_cast(ffi_program.elf_data[i])); + result.append(QString::number(static_cast(ffi_program.elf_data[i]))); } wallet_ffi_free_ffi_program(&ffi_program); return result; } -QJsonArray LogosExecutionZoneWalletModule::amm_elf() { +QList LogosExecutionZoneWalletModule::amm_elf() { FfiProgram ffi_program {}; WalletFfiError error = wallet_ffi_amm_elf(&ffi_program); if (error != SUCCESS) { qWarning() << "amm_elf: wallet FFI error " << error; - return QJsonArray(); + return QList(); } - QJsonArray result; + QList result; + result.reserve(ffi_program.elf_size); for (size_t i = 0; i < ffi_program.elf_size; ++i) { - result.append(static_cast(ffi_program.elf_data[i])); + result.append(QString::number(static_cast(ffi_program.elf_data[i]))); } wallet_ffi_free_ffi_program(&ffi_program); return result; } -QJsonArray LogosExecutionZoneWalletModule::ata_elf() { +QList LogosExecutionZoneWalletModule::ata_elf() { FfiProgram ffi_program {}; WalletFfiError error = wallet_ffi_ata_elf(&ffi_program); if (error != SUCCESS) { qWarning() << "ata_elf: wallet FFI error " << error; - return QJsonArray(); + return QList(); } - QJsonArray result; + QList result; + result.reserve(ffi_program.elf_size); for (size_t i = 0; i < ffi_program.elf_size; ++i) { - result.append(static_cast(ffi_program.elf_data[i])); + result.append(QString::number(static_cast(ffi_program.elf_data[i]))); } wallet_ffi_free_ffi_program(&ffi_program); return result; } -QJsonArray LogosExecutionZoneWalletModule::authenticated_transfer_elf() { +QList LogosExecutionZoneWalletModule::authenticated_transfer_elf() { FfiProgram ffi_program {}; WalletFfiError error = wallet_ffi_transfer_elf(&ffi_program); if (error != SUCCESS) { qWarning() << "authenticated_transfer_elf: wallet FFI error " << error; - return QJsonArray(); + return QList(); } - QJsonArray result; + QList result; + result.reserve(ffi_program.elf_size); for (size_t i = 0; i < ffi_program.elf_size; ++i) { - result.append(static_cast(ffi_program.elf_data[i])); + result.append(QString::number(static_cast(ffi_program.elf_data[i]))); } wallet_ffi_free_ffi_program(&ffi_program); return result; } -QJsonArray LogosExecutionZoneWalletModule::serialization_helper(const QJsonArray& input_data) { +QList LogosExecutionZoneWalletModule::serialization_helper(const QList& input_data) { QList input_list; input_list.reserve(input_data.size()); - for (const QJsonValue& val : input_data) { + for (const QString& val : input_data) { input_list.append(static_cast(val.toInt())); } @@ -829,12 +833,13 @@ QJsonArray LogosExecutionZoneWalletModule::serialization_helper(const QJsonArray FfiInstructionWords raw_words = wallet_ffi_serialization_helper(input_instruction_data, input_instruction_data_size); if (raw_words.error != SUCCESS) { qWarning() << "serialization_helper: wallet FFI error" << raw_words.error; - return QJsonArray{}; + return QList(); } - QJsonArray result; + QList result; + result.reserve(raw_words.instruction_words_size); for (size_t i = 0; i < raw_words.instruction_words_size; ++i) { - result.append(static_cast(raw_words.instruction_words[i])); + result.append(QString::number(raw_words.instruction_words[i])); } wallet_ffi_free_instruction_words(&raw_words); return result; @@ -842,15 +847,15 @@ QJsonArray LogosExecutionZoneWalletModule::serialization_helper(const QJsonArray QString LogosExecutionZoneWalletModule::send_generic_public_transaction( const QList& account_ids, - const QJsonArray& signing_requirements, - const QJsonArray& instruction, - const QJsonArray& program_elf, - const QJsonArray& program_dependencies + const QList& signing_requirements, + const QList& instruction, + const QList& program_elf, + const QList& program_dependencies ) { QList signing_requirements_list; signing_requirements_list.reserve(signing_requirements.size()); - for (const QJsonValue& val : signing_requirements) { - signing_requirements_list.append(val.toBool()); + for (const QString& val : signing_requirements) { + signing_requirements_list.append(val == "true"); } QList identities_resolved; @@ -877,9 +882,9 @@ QString LogosExecutionZoneWalletModule::send_generic_public_transaction( uintptr_t account_identities_size = static_cast(identities_resolved.size()); QList instruction_list; - instruction_list.reserve(instruction.size()); - for (const QJsonValue& val : instruction) { - instruction_list.append(static_cast(val.toInt())); + instruction_list.reserve(instruction.size()); + for (const QString& val : instruction) { + instruction_list.append(val.toULong()); } const uint32_t* input_instruction_data = instruction_list.constData(); @@ -889,8 +894,8 @@ QString LogosExecutionZoneWalletModule::send_generic_public_transaction( QList program_elf_list; program_elf_list.reserve(program_elf.size()); - for (const QJsonValue& val : program_elf) { - program_elf_list.append(static_cast(val.toInt())); + for (const QString& val : program_elf) { + program_elf_list.append(static_cast(val.toUInt())); } const uint8_t *program_elf_data = program_elf_list.constData(); @@ -901,12 +906,12 @@ QString LogosExecutionZoneWalletModule::send_generic_public_transaction( QList> program_dependencies_list; program_dependencies_list.reserve(program_dependencies.size()); - for (const QJsonValue& outer : program_dependencies) { + for (const QString& outer : program_dependencies) { QList inner; - const QJsonArray inner_arr = outer.toArray(); - inner.reserve(inner_arr.size()); - for (const QJsonValue& val : inner_arr) { - inner.append(static_cast(val.toInt())); + const QStringList parts = outer.split(' ', Qt::SkipEmptyParts); + inner.reserve(parts.size()); + for (const QString& val : parts) { + inner.append(static_cast(val.toUInt())); } program_dependencies_list.append(inner); } @@ -961,9 +966,9 @@ QString LogosExecutionZoneWalletModule::send_generic_public_transaction( QString LogosExecutionZoneWalletModule::send_generic_private_transaction( const QList& account_ids, - const QJsonArray& instruction, - const QJsonArray& program_elf, - const QJsonArray& program_dependencies + const QList& instruction, + const QList& program_elf, + const QList& program_dependencies ) { QList identities_resolved; identities_resolved.reserve(account_ids.size()); @@ -989,9 +994,9 @@ QString LogosExecutionZoneWalletModule::send_generic_private_transaction( uintptr_t account_identities_size = static_cast(identities_resolved.size()); QList instruction_list; - instruction_list.reserve(instruction.size()); - for (const QJsonValue& val : instruction) { - instruction_list.append(static_cast(val.toInt())); + instruction_list.reserve(instruction.size()); + for (const QString& val : instruction) { + instruction_list.append(val.toULong()); } const uint32_t* input_instruction_data = instruction_list.constData(); @@ -1001,8 +1006,8 @@ QString LogosExecutionZoneWalletModule::send_generic_private_transaction( QList program_elf_list; program_elf_list.reserve(program_elf.size()); - for (const QJsonValue& val : program_elf) { - program_elf_list.append(static_cast(val.toInt())); + for (const QString& val : program_elf) { + program_elf_list.append(static_cast(val.toUInt())); } const uint8_t *program_elf_data = program_elf_list.constData(); @@ -1013,12 +1018,12 @@ QString LogosExecutionZoneWalletModule::send_generic_private_transaction( QList> program_dependencies_list; program_dependencies_list.reserve(program_dependencies.size()); - for (const QJsonValue& outer : program_dependencies) { + for (const QString& outer : program_dependencies) { QList inner; - const QJsonArray inner_arr = outer.toArray(); - inner.reserve(inner_arr.size()); - for (const QJsonValue& val : inner_arr) { - inner.append(static_cast(val.toInt())); + const QStringList parts = outer.split(' ', Qt::SkipEmptyParts); + inner.reserve(parts.size()); + for (const QString& val : parts) { + inner.append(static_cast(val.toUInt())); } program_dependencies_list.append(inner); } @@ -1072,14 +1077,14 @@ QString LogosExecutionZoneWalletModule::send_generic_private_transaction( } QString LogosExecutionZoneWalletModule::send_program_deployment_transaction( - const QJsonArray& program_elf + const QList& program_elf ) { FfiTransactionResult result {}; QList program_elf_list; program_elf_list.reserve(program_elf.size()); - for (const QJsonValue& val : program_elf) { - program_elf_list.append(static_cast(val.toInt())); + for (const QString& val : program_elf) { + program_elf_list.append(static_cast(val.toUInt())); } const uint8_t *program_elf_data = program_elf_list.constData(); diff --git a/src/logos_execution_zone_wallet_module.h b/src/logos_execution_zone_wallet_module.h index 74fd0f9..72b7465 100644 --- a/src/logos_execution_zone_wallet_module.h +++ b/src/logos_execution_zone_wallet_module.h @@ -116,28 +116,28 @@ public: Q_INVOKABLE QString register_public_account(const QString& account_id_hex) override; Q_INVOKABLE QString register_private_account(const QString& account_id_hex) override; - Q_INVOKABLE QJsonArray serialization_helper(const QJsonArray& input_data) override; + Q_INVOKABLE QList serialization_helper(const QList& input_data) override; - Q_INVOKABLE QJsonArray authenticated_transfer_elf() override; - Q_INVOKABLE QJsonArray token_elf() override; - Q_INVOKABLE QJsonArray amm_elf() override; - Q_INVOKABLE QJsonArray ata_elf() override; + Q_INVOKABLE QList authenticated_transfer_elf() override; + Q_INVOKABLE QList token_elf() override; + Q_INVOKABLE QList amm_elf() override; + Q_INVOKABLE QList ata_elf() override; Q_INVOKABLE QString send_generic_public_transaction( const QList& account_ids, - const QJsonArray& signing_requirements, - const QJsonArray& instruction, - const QJsonArray& program_elf, - const QJsonArray& program_dependencies + const QList& signing_requirements, + const QList& instruction, + const QList& program_elf, + const QList& program_dependencies ) override; Q_INVOKABLE QString send_generic_private_transaction( const QList& account_ids, - const QJsonArray& instruction, - const QJsonArray& program_elf, - const QJsonArray& program_dependencies + const QList& instruction, + const QList& program_elf, + const QList& program_dependencies ) override; Q_INVOKABLE QString send_program_deployment_transaction( - const QJsonArray& program_elf + const QList& program_elf ) override; // Wallet Lifecycle