logos-blockchain-module/src/i_logos_blockchain_module.h

54 lines
1.6 KiB
C
Raw Normal View History

#ifndef I_LOGOS_BLOCKCHAIN_MODULE_API_H
#define I_LOGOS_BLOCKCHAIN_MODULE_API_H
2025-12-17 10:55:13 +01:00
#include <QString>
#include "interface.h"
2026-01-22 23:36:47 +01:00
2026-02-02 17:27:25 +01:00
class ILogosBlockchainModule {
2025-12-17 10:55:13 +01:00
public:
2026-02-02 17:27:25 +01:00
virtual ~ILogosBlockchainModule() = default;
2025-12-17 10:55:13 +01:00
2026-01-22 23:36:47 +01:00
// Logos Core
virtual void initLogos(LogosAPI* logos_api_instance) = 0;
2025-12-17 10:55:13 +01:00
// ---- Node ----
// Lifecycle
virtual int generate_user_config(const QVariantMap& args) = 0;
virtual int generate_user_config_from_str(const QString& args) = 0;
2026-02-02 17:27:25 +01:00
virtual int start(const QString& config_path, const QString& deployment) = 0;
virtual int stop() = 0;
// Wallet
virtual QString wallet_get_balance(const QString& address_hex) = 0;
virtual QString wallet_transfer_funds(
const QString& change_public_key,
const QStringList& sender_addresses,
const QString& recipient_address,
const QString& amount,
const QString& optional_tip_hex
) = 0;
virtual QStringList wallet_get_known_addresses() = 0;
// Blend
virtual QString blend_join_as_core_node(
const QString& provider_id_hex,
const QString& zk_id_hex,
const QString& locked_note_id_hex,
2026-04-17 11:01:18 +02:00
const QStringList& locators
) = 0;
// Storage
virtual QString get_block(const QString& header_id_hex) = 0;
virtual QString get_blocks(quint64 from_slot, quint64 to_slot) = 0;
virtual QString get_transaction(const QString& tx_hash_hex) = 0;
// Cryptarchia
virtual QString get_cryptarchia_info() = 0;
2025-12-17 10:55:13 +01:00
};
2025-12-19 15:53:41 +01:00
#define ILogosBlockchainModule_iid "org.logos.ilogosblockchainmodule"
Q_DECLARE_INTERFACE(ILogosBlockchainModule, ILogosBlockchainModule_iid)
2025-12-19 15:53:41 +01:00
#endif