32 #ifndef LEDGER_CORE_BITCOINLIKETRANSACTIONBUILDER_H 33 #define LEDGER_CORE_BITCOINLIKETRANSACTIONBUILDER_H 35 #include <api/BitcoinLikeTransactionBuilder.hpp> 36 #include <api/BitcoinLikePickingStrategy.hpp> 37 #include <api/BitcoinLikeNetworkParameters.hpp> 38 #include <api/BitcoinLikeTransaction.hpp> 39 #include <api/Amount.hpp> 42 #include <async/Future.hpp> 43 #include <math/BigInt.h> 44 #include <spdlog/logger.h> 45 #include <api/Currency.hpp> 52 std::list<std::tuple<std::string, int32_t, uint32_t>> inputs;
53 std::list<std::tuple<std::shared_ptr<BigInt>, std::shared_ptr<api::BitcoinLikeScript>>> outputs;
54 std::list<std::string> changePaths;
55 std::list<std::tuple<std::string, int32_t>> excludedUtxo;
57 std::shared_ptr<BigInt> feePerByte;
59 std::shared_ptr<BigInt> maxChange;
60 std::shared_ptr<BigInt> minChange;
69 const std::shared_ptr<api::ExecutionContext>& context,
71 const std::shared_ptr<spdlog::logger>&
logger,
72 const BitcoinLikeTransactionBuildFunction& buildFunction);
74 std::shared_ptr<api::BitcoinLikeTransactionBuilder>
75 addInput(
const std::string &transactionHash, int32_t index, int32_t sequence)
override;
77 std::shared_ptr<api::BitcoinLikeTransactionBuilder> addOutput(
const std::shared_ptr<api::Amount> &amount,
78 const std::shared_ptr<api::BitcoinLikeScript> &script)
override;
80 std::shared_ptr<api::BitcoinLikeTransactionBuilder> addChangePath(
const std::string &path)
override;
82 std::shared_ptr<api::BitcoinLikeTransactionBuilder>
83 excludeUtxo(
const std::string &transactionHash, int32_t outputIndex)
override;
85 std::shared_ptr<api::BitcoinLikeTransactionBuilder> setNumberOfChangeAddresses(int32_t count)
override;
87 std::shared_ptr<api::BitcoinLikeTransactionBuilder>
88 pickInputs(api::BitcoinLikePickingStrategy strategy, int32_t sequence)
override;
90 std::shared_ptr<api::BitcoinLikeTransactionBuilder>
91 sendToAddress(
const std::shared_ptr<api::Amount> &amount,
const std::string &address)
override;
93 std::shared_ptr<api::BitcoinLikeTransactionBuilder>
94 wipeToAddress(
const std::string &address)
override;
96 std::shared_ptr<api::BitcoinLikeTransactionBuilder>
97 setFeesPerByte(
const std::shared_ptr<api::Amount> &fees)
override;
99 std::shared_ptr<api::BitcoinLikeTransactionBuilder>
100 setMaxAmountOnChange(
const std::shared_ptr<api::Amount> &amount)
override;
102 std::shared_ptr<api::BitcoinLikeTransactionBuilder>
103 setMinAmountOnChange(
const std::shared_ptr<api::Amount> &amount)
override;
105 std::shared_ptr<api::BitcoinLikeTransactionBuilder> clone()
override;
107 void reset()
override;
109 void build(
const std::shared_ptr<api::BitcoinLikeTransactionCallback> &callback)
override;
113 std::shared_ptr<api::BitcoinLikeScript> createSendScript(
const std::string &address);
114 BitcoinLikeTransactionBuildFunction _build;
116 std::shared_ptr<api::ExecutionContext> _context;
117 std::shared_ptr<spdlog::logger> _logger;
123 #endif //LEDGER_CORE_BITCOINLIKETRANSACTIONBUILDER_H Definition: BitcoinLikeTransactionBuilder.h:66
Definition: Option.hpp:49
Definition: Deffered.hpp:49
Definition: BitcoinLikeTransactionBuilder.h:50
Definition: BitcoinLikeTransactionBuilder.hpp:29
Definition: Currency.hpp:23
Definition: Account.cpp:8
Definition: logger.hpp:44