4 #define PATH_SEPARARTOR '/' 6 #define REMOVE_HASH_BRAKETS(a_hash) \ 7 a_hash.substr(1, a_hash.size()-2) 17 #include <boost/lexical_cast.hpp> 18 #include <boost/filesystem.hpp> 19 #include <boost/optional.hpp> 26 #include <type_traits> 41 namespace bf = boost::filesystem;
52 m_output_keys(output_keys), m_bch(bch)
58 m_output_keys.push_back(pubkey);
71 const string& hash_str,
77 bool testnet =
false);
84 bool testnet =
false);
107 const std::size_t output_index,
114 bf::path& blockchain_path,
115 bool testnet =
false);
120 pair<uint64_t, uint64_t>
123 pair<uint64_t, uint64_t>
130 vector<pair<txout_to_key, uint64_t>>& output_pub_keys,
131 vector<txin_to_key>& input_key_imgs);
140 pair<uint64_t, uint64_t>
143 pair<uint64_t, uint64_t>
176 vector<pair<txout_to_key, uint64_t>>
179 vector<tuple<txout_to_key, uint64_t, uint64_t>>
200 return static_cast<double>(core_amount) / 1e2;
207 read(
string filename);
212 uint64_t timeN, uint64_t resolution = 80,
213 uint64_t time0 = 1397818193 );
224 url_decode(
const std::string& in, std::string& out);
226 map<std::string, std::string>
231 decrypt(
const std::string &ciphertext,
233 bool authenticated =
true);
256 template<
typename Iterator,
typename Func>
259 iterator_traits<string::iterator>::difference_type k,
262 Iterator chunk_begin;
264 chunk_end = chunk_begin = begin;
268 if(std::distance(chunk_end, end) < k)
271 std::advance(chunk_end, k);
272 f(chunk_begin,chunk_end);
273 chunk_begin = chunk_end;
275 while(std::distance(chunk_begin,end) > 0);
290 template <
typename It>
291 typename std::iterator_traits<It>::value_type
294 using T =
typename std::iterator_traits<It>::value_type;
295 std::vector<T> data(it_begin, it_end);
296 std::nth_element(data.begin(), data.begin() + data.size() / 2, data.end());
297 return data[data.size() / 2];
array< size_t, 5 > timestamp_difference(uint64_t t1, uint64_t t2)
Definition: tools.cpp:794
const uint32_t T[512]
Definition: groestl_tables.h:34
double get_xmr(uint64_t core_amount)
Definition: tools.h:198
bool get_tx_pub_key_from_str_hash(Blockchain &core_storage, const string &hash_str, transaction &tx)
Definition: tools.cpp:52
nlohmann::json json
Definition: tools.h:43
uint64_t sum_fees_in_txs(const vector< transaction > &txs)
Definition: tools.cpp:583
POD_CLASS key_derivation
Definition: crypto.h:89
a class to store JSON values
Definition: json.hpp:1298
std::string format(CStringRef format_str, ArgList args)
Definition: format.h:3300
string make_printable(const string &in_s)
Definition: tools.cpp:1425
bool handle_output(uint64_t unlock_time, const crypto::public_key &pubkey)
Definition: tools.h:56
crypto namespace.
Definition: crypto.cpp:47
Definition: block_queue.cpp:41
uint64_t sum_money_in_outputs(const transaction &tx)
Definition: tools.cpp:266
string decrypt(const std::string &ciphertext, const crypto::secret_key &skey, bool authenticated)
Definition: tools.cpp:998
uint64_t count_nonrct_inputs(const transaction &tx)
Definition: tools.cpp:488
vector< pair< txout_to_key, uint64_t > > get_ouputs(const transaction &tx)
Definition: tools.cpp:598
vector< tuple< txout_to_key, uint64_t, uint64_t > > get_ouputs_tuple(const transaction &tx)
Definition: tools.cpp:623
const Blockchain & m_bch
Definition: tools.h:49
bool decode_ringct(const rct::rctSig &rv, const crypto::public_key pub, const crypto::secret_key &sec, unsigned int i, rct::key &mask, uint64_t &amount)
Definition: tools.cpp:877
outputs_visitor(std::vector< crypto::public_key > &output_keys, const Blockchain &bch)
Definition: tools.h:51
Holds cryptonote related classes and helpers.
Definition: db_bdb.cpp:225
bool get_real_output_for_key_image(const key_image &ki, const transaction &tx, const secret_key &private_view_key, const public_key &public_spend_key, uint64_t output_idx, public_key output_pub_key)
Definition: tools.cpp:1143
void pause_execution(uint64_t no_seconds, const string &text)
Definition: tools.cpp:1482
string print_address(const account_public_address &address, bool testnet)
Definition: tools.cpp:91
void chunks(Iterator begin, Iterator end, iterator_traits< string::iterator >::difference_type k, Func f)
Definition: tools.h:257
map< std::string, std::string > parse_crow_post_data(const string &req_body)
Definition: tools.cpp:969
vector< uint64_t > get_mixin_no_in_txs(const vector< transaction > &txs)
Definition: tools.cpp:711
bool generate_key_image(const crypto::key_derivation &derivation, const std::size_t i, const crypto::secret_key &sec_key, const crypto::public_key &pub_key, crypto::key_image &key_img)
Definition: tools.cpp:169
array< uint64_t, 2 > sum_money_in_txs(const vector< transaction > &txs)
Definition: tools.cpp:568
uint64_t sum_money_in_inputs(const transaction &tx)
Definition: tools.cpp:423
Definition: rctTypes.h:82
#define ts
Definition: skein.c:522
Definition: rctTypes.h:323
ostream & operator<<(ostream &os, const account_public_address &addr)
Definition: tools.cpp:159
bool get_blockchain_path(const boost::optional< string > &bc_path, bf::path &blockchain_path, bool testnet)
Definition: tools.cpp:239
string read(string filename)
Definition: tools.cpp:831
string get_default_lmdb_folder(bool testnet)
Definition: tools.cpp:217
std::iterator_traits< It >::value_type calc_median(It it_begin, It it_end)
Definition: tools.h:292
POD_CLASS public_key
Definition: crypto.h:65
std::vector< crypto::public_key > & m_output_keys
Definition: tools.h:47
bool make_tx_from_json(const string &json_str, transaction &tx)
Definition: tools.cpp:1158
array< uint64_t, 2 > sum_money_in_tx(const transaction &tx)
Definition: tools.cpp:556
t2
Definition: pow22523.h:103
POD_CLASS signature
Definition: crypto.h:99
Definition: cryptonote_basic.h:421
POD_CLASS hash8
Definition: hash.h:49
bool is_separator(char c)
Definition: tools.cpp:109
string remove_trailing_path_separator(const string &in_path)
Definition: tools.cpp:122
POD_CLASS key_image
Definition: crypto.h:93
POD_CLASS secret_key
Definition: crypto.h:69
t1
Definition: pow22523.h:58
bool parse_str_secret_key(const string &key_str, T &secret_key)
Definition: tools.cpp:18
bool parse_str_address(const string &address_str, account_public_address &address, bool testnet)
Definition: tools.cpp:75
POD_CLASS hash
Definition: hash.h:46
pair< string, double > timestamps_time_scale(const vector< uint64_t > ×tamps, uint64_t timeN, uint64_t resolution, uint64_t time0)
Definition: tools.cpp:845
string get_human_readable_timestamp(uint64_t ts)
Definition: tools.cpp:1464
basic_json<> json
default JSON class
Definition: json.hpp:14369
array< uint64_t, 4 > summary_of_in_out_rct(const transaction &tx, vector< pair< txout_to_key, uint64_t >> &output_pub_keys, vector< txin_to_key > &input_key_imgs)
Definition: tools.cpp:321
public_key get_tx_pub_key_from_received_outs(const transaction &tx)
Definition: tools.cpp:1049
uint64_t get_mixin_no(const transaction &tx)
Definition: tools.cpp:646
string timestamp_to_str_gm(time_t timestamp, const char *format)
Definition: tools.cpp:141
bool get_payment_id(const vector< uint8_t > &extra, crypto::hash &payment_id, crypto::hash8 &payment_id8)
Definition: tools.cpp:751
vector< txin_to_key > get_key_images(const transaction &tx)
Definition: tools.cpp:725
bool is_output_ours(const size_t &output_index, const transaction &tx, const public_key &pub_tx_key, const secret_key &private_view_key, const public_key &public_spend_key)
Definition: tools.cpp:1096
bool url_decode(const std::string &in, std::string &out)
Definition: tools.cpp:929
Definition: cryptonote_basic.h:198
Definition: MicroCore.cpp:13
string print_sig(const signature &sig)
Definition: tools.cpp:96
Definition: blockchain.h:80