32 #ifndef LEDGER_CORE_TEZOSLIKETRANSACTIONBUILDER_H 33 #define LEDGER_CORE_TEZOSLIKETRANSACTIONBUILDER_H 35 #include <api/TezosLikeTransactionBuilder.hpp> 36 #include <api/Currency.hpp> 37 #include <api/ExecutionContext.hpp> 38 #include <api/Amount.hpp> 39 #include <api/TezosOperationTag.hpp> 41 #include <wallet/common/Amount.h> 42 #include <wallet/tezos/explorers/TezosLikeBlockchainExplorer.h> 44 #include <math/BigInt.h> 46 #include <async/Future.hpp> 47 #include <spdlog/logger.h> 55 type = api::TezosOperationTag::OPERATION_TAG_TRANSACTION;
57 std::string toAddress;
58 std::shared_ptr<BigInt> value;
59 std::shared_ptr<BigInt> fees;
60 std::shared_ptr<BigInt> gasLimit;
61 std::shared_ptr<BigInt> storageLimit;
62 api::TezosOperationTag type;
66 using TezosLikeTransactionBuildFunction = std::function<Future<std::shared_ptr<api::TezosLikeTransaction>>(
70 public std::enable_shared_from_this<TezosLikeTransactionBuilder> {
74 const std::shared_ptr<api::ExecutionContext> &context,
76 const std::shared_ptr<TezosLikeBlockchainExplorer> &explorer,
77 const std::shared_ptr<spdlog::logger> &
logger,
78 const TezosLikeTransactionBuildFunction &buildFunction,
79 const std::string &protocolUpdate =
"");
83 std::shared_ptr<api::TezosLikeTransactionBuilder> setType(api::TezosOperationTag type)
override;
85 std::shared_ptr<api::TezosLikeTransactionBuilder> sendToAddress(
const std::shared_ptr<api::Amount> &amount,
86 const std::string &address)
override;
88 std::shared_ptr<api::TezosLikeTransactionBuilder> wipeToAddress(
const std::string &address)
override;
90 std::shared_ptr<api::TezosLikeTransactionBuilder>
91 setFees(
const std::shared_ptr<api::Amount> &fees)
override;
93 std::shared_ptr<api::TezosLikeTransactionBuilder>
94 setGasLimit(
const std::shared_ptr<api::Amount> & gasLimit)
override ;
96 std::shared_ptr<api::TezosLikeTransactionBuilder>
97 setStorageLimit(
const std::shared_ptr<api::BigInt> & storageLimit)
override;
99 void build(
const std::shared_ptr<api::TezosLikeTransactionCallback> &callback)
override;
103 std::shared_ptr<api::TezosLikeTransactionBuilder> clone()
override;
105 void reset()
override;
107 static std::shared_ptr<api::TezosLikeTransaction> parseRawTransaction(
const api::Currency ¤cy,
108 const std::vector<uint8_t> &rawTransaction,
110 const std::string &protocolUpdate);
114 std::shared_ptr<TezosLikeBlockchainExplorer> _explorer;
115 TezosLikeTransactionBuildFunction _build;
116 TezosLikeTransactionBuildRequest _request;
117 std::shared_ptr<api::ExecutionContext> _context;
118 std::shared_ptr<spdlog::logger> _logger;
119 std::string _senderAddress;
123 #endif //LEDGER_CORE_TEZOSLIKETRANSACTIONBUILDER_H Definition: Deffered.hpp:49
Definition: TezosLikeTransactionBuilder.h:52
Definition: Currency.hpp:23
Definition: TezosLikeTransactionBuilder.h:69
Definition: Account.cpp:8
Definition: TezosLikeTransactionBuilder.hpp:28
Definition: logger.hpp:44