From 9f34b4696100202f68d1b4a4d48106054bc149b5 Mon Sep 17 00:00:00 2001 From: Some Random Crypto Guy Date: Fri, 9 Aug 2024 16:03:18 +0100 Subject: [PATCH] fixed wallet API to expose TX type to GUI wallet; updated Dockerfile --- Dockerfile | 26 +++++++++++++------------- src/wallet/api/transaction_history.cpp | 4 ++++ src/wallet/api/transaction_info.cpp | 5 +++++ src/wallet/api/transaction_info.h | 2 ++ src/wallet/api/wallet2_api.h | 3 ++- utils/conf/salviumd.conf | 8 ++++++++ utils/systemd/salviumd.service | 20 ++++++++++++++++++++ 7 files changed, 54 insertions(+), 14 deletions(-) create mode 100644 utils/conf/salviumd.conf create mode 100644 utils/systemd/salviumd.service diff --git a/Dockerfile b/Dockerfile index 1c373cb..fde5213 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,26 +41,26 @@ RUN set -ex && \ rm -rf /var/lib/apt COPY --from=builder /src/build/x86_64-linux-gnu/release/bin /usr/local/bin/ -# Create monero user -RUN adduser --system --group --disabled-password monero && \ - mkdir -p /wallet /home/monero/.bitmonero && \ - chown -R monero:monero /home/monero/.bitmonero && \ - chown -R monero:monero /wallet +# Create salvium user +RUN adduser --system --group --disabled-password salvium && \ + mkdir -p /wallet /home/salvium/.salvium && \ + chown -R salvium:salvium /home/salvium/.salvium && \ + chown -R salvium:salvium /wallet # Contains the blockchain -VOLUME /home/monero/.bitmonero +VOLUME /home/salvium/.salvium # Generate your wallet via accessing the container and run: # cd /wallet -# monero-wallet-cli +# salvium-wallet-cli VOLUME /wallet -EXPOSE 18080 -EXPOSE 18081 +EXPOSE 19080 +EXPOSE 19081 -# switch to user monero -USER monero +# switch to user salvium +USER salvium -ENTRYPOINT ["monerod"] -CMD ["--p2p-bind-ip=0.0.0.0", "--p2p-bind-port=18080", "--rpc-bind-ip=0.0.0.0", "--rpc-bind-port=18081", "--non-interactive", "--confirm-external-bind"] +ENTRYPOINT ["salviumd"] +CMD ["--p2p-bind-ip=0.0.0.0", "--p2p-bind-port=19080", "--rpc-bind-ip=0.0.0.0", "--rpc-bind-port=19081", "--non-interactive", "--confirm-external-bind"] diff --git a/src/wallet/api/transaction_history.cpp b/src/wallet/api/transaction_history.cpp index 9f5e411..84212a4 100644 --- a/src/wallet/api/transaction_history.cpp +++ b/src/wallet/api/transaction_history.cpp @@ -150,6 +150,7 @@ void TransactionHistoryImpl::refresh() ti->m_timestamp = pd.m_timestamp; ti->m_confirmations = (wallet_height > pd.m_block_height) ? wallet_height - pd.m_block_height : 0; ti->m_unlock_time = pd.m_unlock_time; + ti->m_type = static_cast(static_cast(pd.m_tx_type)); m_history.push_back(ti); } @@ -193,6 +194,7 @@ void TransactionHistoryImpl::refresh() ti->m_label = pd.m_subaddr_indices.size() == 1 ? m_wallet->m_wallet->get_subaddress_label({pd.m_subaddr_account, *pd.m_subaddr_indices.begin()}) : ""; ti->m_timestamp = pd.m_timestamp; ti->m_confirmations = (wallet_height > pd.m_block_height) ? wallet_height - pd.m_block_height : 0; + ti->m_type = static_cast(static_cast(pd.m_tx.type)); // single output transaction might contain multiple transfers for (const auto &d: pd.m_dests) { @@ -229,6 +231,7 @@ void TransactionHistoryImpl::refresh() ti->m_label = pd.m_subaddr_indices.size() == 1 ? m_wallet->m_wallet->get_subaddress_label({pd.m_subaddr_account, *pd.m_subaddr_indices.begin()}) : ""; ti->m_timestamp = pd.m_timestamp; ti->m_confirmations = 0; + ti->m_type = static_cast(static_cast(pd.m_tx.type)); for (const auto &d : pd.m_dests) { ti->m_transfers.push_back({d.amount, d.address(m_wallet->m_wallet->nettype(), pd.m_payment_id)}); @@ -258,6 +261,7 @@ void TransactionHistoryImpl::refresh() ti->m_label = m_wallet->m_wallet->get_subaddress_label(pd.m_subaddr_index); ti->m_timestamp = pd.m_timestamp; ti->m_confirmations = 0; + ti->m_type = static_cast(static_cast(pd.m_tx_type)); m_history.push_back(ti); LOG_PRINT_L1(__FUNCTION__ << ": Unconfirmed payment found " << pd.m_amount); diff --git a/src/wallet/api/transaction_info.cpp b/src/wallet/api/transaction_info.cpp index 572b043..687623f 100644 --- a/src/wallet/api/transaction_info.cpp +++ b/src/wallet/api/transaction_info.cpp @@ -149,4 +149,9 @@ uint64_t TransactionInfoImpl::unlockTime() const return m_unlock_time; } +Monero::transaction_type TransactionInfoImpl::type() const +{ + return m_type; +} + } // namespace diff --git a/src/wallet/api/transaction_info.h b/src/wallet/api/transaction_info.h index 6337f2a..a2cd120 100644 --- a/src/wallet/api/transaction_info.h +++ b/src/wallet/api/transaction_info.h @@ -62,6 +62,7 @@ public: virtual const std::vector &transfers() const override; virtual uint64_t confirmations() const override; virtual uint64_t unlockTime() const override; + virtual Monero::transaction_type type() const override; private: int m_direction; @@ -81,6 +82,7 @@ private: std::vector m_transfers; uint64_t m_confirmations; uint64_t m_unlock_time; + Monero::transaction_type m_type; friend class TransactionHistoryImpl; diff --git a/src/wallet/api/wallet2_api.h b/src/wallet/api/wallet2_api.h index 884f720..2605f47 100644 --- a/src/wallet/api/wallet2_api.h +++ b/src/wallet/api/wallet2_api.h @@ -49,7 +49,7 @@ enum NetworkType : uint8_t { STAGENET }; -enum transaction_type { +enum transaction_type : uint8_t { UNSET = 0, MINER = 1, PROTOCOL = 2, @@ -233,6 +233,7 @@ struct TransactionInfo virtual std::string paymentId() const = 0; //! only applicable for output transactions virtual const std::vector & transfers() const = 0; + virtual Monero::transaction_type type() const = 0; }; /** * @brief The TransactionHistory - interface for displaying transaction history diff --git a/utils/conf/salviumd.conf b/utils/conf/salviumd.conf new file mode 100644 index 0000000..542b8d5 --- /dev/null +++ b/utils/conf/salviumd.conf @@ -0,0 +1,8 @@ +# Configuration for salviumd +# Syntax: any command line option may be specified as 'clioptionname=value'. +# Boolean options such as 'no-igd' are specified as 'no-igd=1'. +# See 'salviumd --help' for all available options. + +data-dir=/var/lib/salvium +log-file=/var/log/salvium/salvium.log +log-level=0 diff --git a/utils/systemd/salviumd.service b/utils/systemd/salviumd.service new file mode 100644 index 0000000..79d7d6e --- /dev/null +++ b/utils/systemd/salviumd.service @@ -0,0 +1,20 @@ +[Unit] +Description=Salvium Full Node +After=network.target + +[Service] +User=salvium +Group=salvium +WorkingDirectory=~ +StateDirectory=salvium +LogsDirectory=salvium + +Type=simple +ExecStart=/usr/bin/salviumd --config-file /etc/salviumd.conf --non-interactive +StandardOutput=null +StandardError=null + +Restart=always + +[Install] +WantedBy=multi-user.target