31 #ifndef LEDGER_CORE_BITCOINLIKEKEYCHAIN_HPP 32 #define LEDGER_CORE_BITCOINLIKEKEYCHAIN_HPP 34 #include "../../../bitcoin/BitcoinLikeExtendedPublicKey.hpp" 37 #include <utils/DerivationScheme.hpp> 38 #include "../../../utils/Option.hpp" 39 #include "../../../preferences/Preferences.hpp" 40 #include "../../../api/Configuration.hpp" 41 #include "../../../api/DynamicObject.hpp" 42 #include <api/Currency.hpp> 43 #include <api/AccountCreationInfo.hpp> 44 #include <api/ExtendedKeyAccountCreationInfo.hpp> 46 #include <bitcoin/BitcoinLikeAddress.hpp> 58 using Address = std::shared_ptr<BitcoinLikeAddress>;
61 const std::shared_ptr<api::DynamicObject>& configuration,
64 const std::shared_ptr<Preferences>& preferences);
66 virtual bool markAsUsed(
const std::vector<std::string>& addresses);
67 virtual bool markAsUsed(
const std::string& address);
70 virtual std::vector<Address> getAllObservableAddresses(uint32_t from, uint32_t to) = 0;
71 virtual std::vector<Address> getAllObservableAddresses(KeyPurpose purpose, uint32_t from, uint32_t to) = 0;
73 virtual Address getFreshAddress(KeyPurpose purpose) = 0;
74 virtual std::vector<Address> getFreshAddresses(KeyPurpose purpose,
size_t n) = 0;
78 virtual bool isEmpty()
const = 0;
80 int getAccountIndex()
const;
87 std::shared_ptr<api::DynamicObject> getConfiguration()
const;
90 std::string getKeychainEngine()
const;
91 bool isSegwit()
const;
92 bool isNativeSegwit()
const;
94 virtual std::string getRestoreKey()
const = 0;
95 virtual int32_t getObservableRangeSize()
const = 0;
96 virtual bool contains(
const std::string& address)
const = 0;
97 virtual int32_t getOutputSizeAsSignedTxInput()
const = 0;
99 static bool isSegwit(
const std::string &keychainEngine);
100 static bool isNativeSegwit(
const std::string &keychainEngine);
102 std::shared_ptr<Preferences> getPreferences()
const;
110 std::shared_ptr<Preferences> _preferences;
111 std::shared_ptr<api::DynamicObject> _configuration;
116 #endif //LEDGER_CORE_BITCOINLIKEKEYCHAIN_HPP Definition: BitcoinLikeKeychain.hpp:51
Definition: Option.hpp:49
Definition: DerivationScheme.hpp:55
Definition: DerivationPath.hpp:40
Definition: Currency.hpp:23
Definition: Account.cpp:8
Definition: BitcoinLikeNetworkParameters.hpp:17