Piac test code coverage report
Current view: top level - src - monero_util.hpp (source / functions) Hit Total Coverage
Commit: Piac-RELEASE Lines: 6 6 100.0 %
Date: 2022-12-16 13:44:03 Functions: 0 2 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 3 8 37.5 %

           Branch data     Line data    Source code
       1                 :            : // *****************************************************************************
       2                 :            : /*!
       3                 :            :   \file      src/monero_util.hpp
       4                 :            :   \copyright 2022-2025 J. Bakosi,
       5                 :            :              All rights reserved. See the LICENSE file for details.
       6                 :            :   \brief     Piac monero wallet interaction functionality
       7                 :            : */
       8                 :            : // *****************************************************************************
       9                 :            : 
      10                 :            : #pragma once
      11                 :            : 
      12                 :            : #include "macro.hpp"
      13                 :            : 
      14                 :            : #if defined(__clang__)
      15                 :            :   #pragma clang diagnostic push
      16                 :            :   #pragma clang diagnostic ignored "-Wdeprecated-copy-dtor"
      17                 :            :   #pragma clang diagnostic ignored "-Wnon-virtual-dtor"
      18                 :            :   #pragma clang diagnostic ignored "-Wsuggest-override"
      19                 :            :   #pragma clang diagnostic ignored "-Wunused-template"
      20                 :            :   #pragma clang diagnostic ignored "-Wsign-conversion"
      21                 :            :   #pragma clang diagnostic ignored "-Wcast-qual"
      22                 :            :   #pragma clang diagnostic ignored "-Wheader-hygiene"
      23                 :            :   #pragma clang diagnostic ignored "-Wshadow"
      24                 :            :   #pragma clang diagnostic ignored "-Wshadow-field"
      25                 :            :   #pragma clang diagnostic ignored "-Wextra-semi"
      26                 :            :   #pragma clang diagnostic ignored "-Wextra-semi-stmt"
      27                 :            :   #pragma clang diagnostic ignored "-Wdocumentation"
      28                 :            :   #pragma clang diagnostic ignored "-Wunused-parameter"
      29                 :            :   #pragma clang diagnostic ignored "-Wdocumentation-unknown-command"
      30                 :            :   #pragma clang diagnostic ignored "-Wdouble-promotion"
      31                 :            :   #pragma clang diagnostic ignored "-Wsuggest-destructor-override"
      32                 :            :   #pragma clang diagnostic ignored "-Wreserved-id-macro"
      33                 :            :   #pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
      34                 :            :   #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"
      35                 :            :   #pragma clang diagnostic ignored "-Wimplicit-int-conversion"
      36                 :            :   #pragma clang diagnostic ignored "-Wimplicit-int-float-conversion"
      37                 :            :   #pragma clang diagnostic ignored "-Wold-style-cast"
      38                 :            :   #pragma clang diagnostic ignored "-Wshadow-field-in-constructor"
      39                 :            :   #pragma clang diagnostic ignored "-Wswitch-enum"
      40                 :            :   #pragma clang diagnostic ignored "-Wshorten-64-to-32"
      41                 :            :   #pragma clang diagnostic ignored "-Wcovered-switch-default"
      42                 :            :   #pragma clang diagnostic ignored "-Wdeprecated-dynamic-exception-spec"
      43                 :            :   #pragma clang diagnostic ignored "-Wmissing-noreturn"
      44                 :            :   #pragma clang diagnostic ignored "-Wunused-variable"
      45                 :            :   #pragma clang diagnostic ignored "-Wused-but-marked-unused"
      46                 :            :   #pragma clang diagnostic ignored "-Wdisabled-macro-expansion"
      47                 :            :   #pragma clang diagnostic ignored "-Winconsistent-missing-destructor-override"
      48                 :            :   #pragma clang diagnostic ignored "-Wredundant-parens"
      49                 :            :   #pragma clang diagnostic ignored "-Wunused-exception-parameter"
      50                 :            :   #pragma clang diagnostic ignored "-Wreorder-ctor"
      51                 :            :   #pragma clang diagnostic ignored "-Wweak-vtables"
      52                 :            :   #pragma clang diagnostic ignored "-Wshift-count-overflow"
      53                 :            :   #pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
      54                 :            :   #pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
      55                 :            : #elif defined(STRICT_GNUC)
      56                 :            :   #pragma GCC diagnostic push
      57                 :            :   #pragma GCC diagnostic ignored "-Wunused-parameter"
      58                 :            :   #pragma GCC diagnostic ignored "-Wreorder"
      59                 :            : #endif
      60                 :            : 
      61                 :            : #define BOOST_BIND_GLOBAL_PLACEHOLDERS
      62                 :            : #include "wallet/monero_wallet_full.h"
      63                 :            : 
      64                 :            : #if defined(__clang__)
      65                 :            :   #pragma clang diagnostic pop
      66                 :            : #elif defined(STRICT_GNUC)
      67                 :            :   #pragma GCC diagnostic pop
      68                 :            : #endif
      69                 :            : 
      70                 :            : #include "zmq_util.hpp"
      71                 :            : 
      72                 :            : namespace piac {
      73                 :            : 
      74                 :            : //! Monero wallet synchronization listener class
      75                 :            : class WalletListener : public monero::monero_wallet_listener {
      76                 :            :   public:
      77                 :            : 
      78                 :            :     WalletListener() : m_height( 0 ), m_start_height( 0 ), m_end_height( 0 ),
      79         [ +  - ]:         44 :       m_percent_done( 0.0 ), m_message() {}
      80                 :            : 
      81                 :            :     void on_sync_progress( uint64_t height, uint64_t start_height,
      82                 :            :                            uint64_t end_height, double percent_done,
      83                 :            :                            const std::string& message ) override;
      84                 :            : 
      85 [ -  + ][ -  + ]:         44 :     virtual ~WalletListener() = default;
                 [ -  - ]
      86                 :          1 :     uint64_t height() const { return m_height; }
      87                 :          1 :     uint64_t start_height() const { return m_start_height; }
      88                 :          1 :     uint64_t end_height() const { return m_end_height; }
      89                 :          1 :     double percent_done() const { return m_percent_done; }
      90                 :            :     std::string message() const { return m_message; }
      91                 :            : 
      92                 :            :   private:
      93                 :            :     uint64_t m_height;
      94                 :            :     uint64_t m_start_height;
      95                 :            :     uint64_t m_end_height;
      96                 :            :     double m_percent_done;
      97                 :            :     std::string m_message;
      98                 :            : };
      99                 :            : 
     100                 :            : //! Send a command to piac daemon
     101                 :            : void
     102                 :            : send_cmd( std::string cmd,
     103                 :            :           zmqpp::context& ctx,
     104                 :            :           const std::string& host,
     105                 :            :           const std::string& rpc_server_public_key,
     106                 :            :           const zmqpp::curve::keypair& client_keys,
     107                 :            :           const std::unique_ptr< monero_wallet_full >& wallet );
     108                 :            : 
     109                 :            : //! Start wallet sync in the background
     110                 :            : void
     111                 :            : start_syncing( const std::string& msg,
     112                 :            :                monero_wallet_full* wallet,
     113                 :            :                WalletListener& listener );
     114                 :            : 
     115                 :            : //! Create a new monero wallet
     116                 :            : std::unique_ptr< monero_wallet_full >
     117                 :            : create_wallet( const std::string& monerod_host, WalletListener& listener );
     118                 :            : 
     119                 :            : //! Query and print currently active wallet keys
     120                 :            : void
     121                 :            : show_wallet_keys( const std::unique_ptr< monero_wallet_full >& wallet );
     122                 :            : 
     123                 :            : //! Query and print currently active wallet balance
     124                 :            : void
     125                 :            : show_wallet_balance( const std::unique_ptr< monero_wallet_full >& wallet,
     126                 :            :                      const WalletListener& listener );
     127                 :            : 
     128                 :            : //! Change currently active user id / monero wallet
     129                 :            : std::unique_ptr< monero_wallet_full >
     130                 :            : switch_user( const std::string& mnemonic,
     131                 :            :              const std::string& monerod_host,
     132                 :            :              WalletListener& listener );
     133                 :            : 
     134                 :            : //! Show user id / monero wallet mnemonic
     135                 :            : void
     136                 :            : show_user( const std::unique_ptr< monero_wallet_full >& wallet );
     137                 :            : 
     138                 :            : } // piac::

Generated by: LCOV version 1.14