32 #ifndef LEDGER_CORE_BITCOINLIKESCRIPT_H 33 #define LEDGER_CORE_BITCOINLIKESCRIPT_H 35 #include <utils/Try.hpp> 36 #include <utils/Either.hpp> 37 #include "operators.h" 39 #include <api/BitcoinLikeNetworkParameters.hpp> 40 #include <bitcoin/BitcoinLikeAddress.hpp> 45 using BitcoinLikeScriptOpCode = btccore::opcodetype;
53 const std::vector<uint8_t> &getBytes()
const;
57 BitcoinLikeScriptOpCode getOpCode()
const;
59 bool isEqualTo(btccore::opcodetype code)
const;
61 bool sizeEqualsTo(std::size_t size)
const;
63 bool isOpCode()
const;
71 std::string keychainEngine;
74 const std::string &keychainEngine_) : isSigned(isSigned_),
75 keychainEngine(keychainEngine_) {
76 if (isSigned_ && keychainEngine_.empty()) {
77 throw make_exception(api::ErrorCode::INVALID_ARGUMENT,
78 "Keychain engine required when constructing signed scripts");
83 this->isSigned = copy.isSigned;
84 this->keychainEngine = copy.keychainEngine;
88 this->isSigned = copy.isSigned;
89 this->keychainEngine = copy.keychainEngine;
106 std::size_t size()
const;
108 std::string toString()
const;
110 std::vector<uint8_t> serialize()
const;
112 const std::list<BitcoinLikeScriptChunk> &toList()
const;
114 bool isP2PKH()
const;
118 bool isP2WPKH()
const;
120 bool isP2WSH()
const;
131 std::list<BitcoinLikeScriptChunk> _chunks;
138 #endif //LEDGER_CORE_BITCOINLIKESCRIPT_H
Definition: Either.hpp:43
Definition: BitcoinLikeScript.h:47
Definition: Option.hpp:49
Definition: BitcoinLikeScript.h:69
Definition: Currency.hpp:23
Definition: BitcoinLikeScript.h:94
Definition: Account.cpp:8