Changeset View
Changeset View
Standalone View
Standalone View
src/node/transaction.h
// Copyright (c) 2017-2019 The Bitcoin Core developers | // Copyright (c) 2017-2019 The Bitcoin Core developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#ifndef BITCOIN_NODE_TRANSACTION_H | #ifndef BITCOIN_NODE_TRANSACTION_H | ||||
#define BITCOIN_NODE_TRANSACTION_H | #define BITCOIN_NODE_TRANSACTION_H | ||||
#include <attributes.h> | #include <attributes.h> | ||||
#include <primitives/transaction.h> | #include <primitives/transaction.h> | ||||
#include <util/error.h> | #include <util/error.h> | ||||
class Config; | class Config; | ||||
struct NodeContext; | struct NodeContext; | ||||
struct TxId; | struct TxId; | ||||
/** | /** | ||||
* Broadcast a transaction | * Submit a transaction to the mempool and (optionally) relay it to all P2P | ||||
* peers. | |||||
* | |||||
* Mempool submission can be synchronous (will await mempool entry notification | |||||
* over the CValidationInterface) or asynchronous (will submit and not wait for | |||||
* notification), depending on the value of wait_callback. wait_callback MUST | |||||
* NOT be set while cs_main, cs_mempool or cs_wallet are held to avoid | |||||
* deadlock. | |||||
* | * | ||||
* @param[in] node reference to node context | * @param[in] node reference to node context | ||||
* @param[in] tx the transaction to broadcast | * @param[in] tx the transaction to broadcast | ||||
* @param[out] &err_string reference to std::string to fill with error string | * @param[out] &err_string reference to std::string to fill with error string | ||||
* if available | * if available | ||||
* @param[in] max_tx_fee reject txs with fees higher than this (if 0, accept | * @param[in] max_tx_fee reject txs with fees higher than this (if 0, accept | ||||
* any fee) | * any fee) | ||||
* @param[in] relay flag if both mempool insertion and p2p relay are requested | * @param[in] relay flag if both mempool insertion and p2p relay are requested | ||||
* @param[in] wait_callback, wait until callbacks have been processed to avoid | * @param[in] wait_callback, wait until callbacks have been processed to avoid | ||||
* stale result due to a sequentially RPC. It MUST NOT be set while cs_main, | * stale result due to a sequentially RPC. | ||||
* cs_mempool or cs_wallet are held to avoid deadlock | |||||
* @return error | * @return error | ||||
*/ | */ | ||||
NODISCARD TransactionError BroadcastTransaction( | NODISCARD TransactionError BroadcastTransaction( | ||||
NodeContext &node, const Config &config, CTransactionRef tx, | NodeContext &node, const Config &config, CTransactionRef tx, | ||||
std::string &err_string, Amount max_tx_fee, bool relay, bool wait_callback); | std::string &err_string, Amount max_tx_fee, bool relay, bool wait_callback); | ||||
#endif // BITCOIN_NODE_TRANSACTION_H | #endif // BITCOIN_NODE_TRANSACTION_H |