Skip to content
This repository was archived by the owner on Oct 4, 2019. It is now read-only.

Commit 88088b7

Browse files
authored
Merge pull request #950 from GolosChain/golos-v0.18.5
Golos v0.18.5
2 parents 9ee5f5f + f8bb091 commit 88088b7

19 files changed

Lines changed: 148 additions & 71 deletions

File tree

libraries/api/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@ list(APPEND CURRENT_TARGET_HEADERS
99
include/golos/api/vote_state.hpp
1010
include/golos/api/account_vote.hpp
1111
include/golos/api/discussion_helper.hpp
12+
include/golos/api/block_objects.hpp
1213
)
1314

1415
list(APPEND CURRENT_TARGET_SOURCES
1516
account_api_object.cpp
1617
discussion_helper.cpp
1718
chain_api_properties.cpp
1819
witness_api_object.cpp
20+
block_objects.cpp
1921
)
2022

2123
if(BUILD_SHARED_LIBRARIES)

libraries/api/block_objects.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#include <golos/api/block_objects.hpp>
2+
3+
namespace golos { namespace api {
4+
5+
block_operation::block_operation() = default;
6+
7+
annotated_signed_block::annotated_signed_block() = default;
8+
9+
annotated_signed_block::annotated_signed_block(const signed_block& block)
10+
: signed_block(block) {
11+
block_id = id();
12+
signing_key = signee();
13+
transaction_ids.reserve(transactions.size());
14+
for (const signed_transaction& tx : transactions) {
15+
transaction_ids.push_back(tx.id());
16+
}
17+
}
18+
19+
annotated_signed_block::annotated_signed_block(const signed_block& block, const block_operations& ops)
20+
: annotated_signed_block(block) {
21+
_virtual_operations = ops;
22+
}
23+
24+
} } // golos::api
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#pragma once
2+
3+
#include <golos/chain/account_object.hpp>
4+
#include <golos/chain/database.hpp>
5+
#include <golos/chain/operation_notification.hpp>
6+
#include <golos/chain/steem_object_types.hpp>
7+
#include <golos/protocol/types.hpp>
8+
9+
namespace golos { namespace api {
10+
11+
using namespace golos::protocol;
12+
using golos::chain::operation_notification;
13+
14+
// block_operation used in block_applied_callback to represent virtual operations.
15+
// default operation type have no position info (trx, op_in_trx)
16+
struct block_operation {
17+
18+
block_operation();
19+
20+
block_operation(const operation_notification& o) :
21+
trx_in_block(o.trx_in_block),
22+
op_in_trx(o.op_in_trx),
23+
virtual_op(o.virtual_op),
24+
op(o.op) {};
25+
26+
uint32_t trx_in_block = 0;
27+
uint16_t op_in_trx = 0;
28+
uint32_t virtual_op = 0;
29+
operation op;
30+
};
31+
32+
using block_operations = std::vector<block_operation>;
33+
34+
struct annotated_signed_block : public signed_block {
35+
36+
annotated_signed_block();
37+
38+
annotated_signed_block(const signed_block& block);
39+
40+
annotated_signed_block(const signed_block& block, const block_operations& ops);
41+
42+
annotated_signed_block(const annotated_signed_block& block) = default;
43+
44+
block_id_type block_id;
45+
public_key_type signing_key;
46+
vector<transaction_id_type> transaction_ids;
47+
48+
// name field starting with _ coz it's not directly related to block
49+
optional<block_operations> _virtual_operations;
50+
};
51+
52+
} } // golos::api
53+
54+
55+
FC_REFLECT((golos::api::block_operation),
56+
(trx_in_block)(op_in_trx)(virtual_op)(op))
57+
FC_REFLECT_DERIVED((golos::api::annotated_signed_block), ((golos::chain::signed_block)),
58+
(block_id)(signing_key)(transaction_ids)(_virtual_operations))

libraries/protocol/include/golos/protocol/config.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*/
44
#pragma once
55

6-
#define STEEMIT_BLOCKCHAIN_VERSION (version(0, 18, 4))
6+
#define STEEMIT_BLOCKCHAIN_VERSION (version(0, 18, 5))
77
#define STEEMIT_BLOCKCHAIN_HARDFORK_VERSION (hardfork_version(STEEMIT_BLOCKCHAIN_VERSION))
88

99
#ifdef STEEMIT_BUILD_TESTNET

libraries/wallet/include/golos/wallet/remote_node_api.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
#include <golos/api/account_api_object.hpp>
1919
#include <golos/api/account_vote.hpp>
20+
#include <golos/api/block_objects.hpp>
2021
#include <golos/api/discussion.hpp>
2122
#include <golos/api/vote_state.hpp>
2223

@@ -46,7 +47,7 @@ using namespace golos::api;
4647
* Class is used by wallet to send formatted API calls to database_api plugin on remote node.
4748
*/
4849
struct remote_database_api {
49-
optional< database_api::signed_block > get_block( uint32_t );
50+
optional< golos::api::annotated_signed_block > get_block( uint32_t );
5051
optional< block_header > get_block_header( uint32_t );
5152
fc::variant_object get_config();
5253
database_api::dynamic_global_property_object get_dynamic_global_properties();

libraries/wallet/include/golos/wallet/wallet.hpp

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,6 @@ namespace golos { namespace wallet {
115115
string ws_server = "ws://localhost:8091";
116116
};
117117

118-
struct signed_block_with_info: public signed_block {
119-
signed_block_with_info(const signed_block& block);
120-
signed_block_with_info(const signed_block_with_info& block) = default;
121-
122-
block_id_type block_id;
123-
public_key_type signing_key;
124-
vector<transaction_id_type> transaction_ids;
125-
};
126-
127118
struct key_with_data {
128119
std::string account;
129120
std::string type;
@@ -262,7 +253,7 @@ namespace golos { namespace wallet {
262253
*
263254
* @returns Public block data on the blockchain
264255
*/
265-
optional<signed_block_with_info> get_block(uint32_t num);
256+
optional<golos::api::annotated_signed_block> get_block(uint32_t num);
266257

267258
/** Returns sequence of operations included/generated in a specified block
268259
*
@@ -1345,9 +1336,6 @@ namespace golos { namespace wallet {
13451336

13461337
FC_REFLECT((golos::wallet::wallet_data), (cipher_keys)(ws_server))
13471338

1348-
FC_REFLECT_DERIVED((golos::wallet::signed_block_with_info), ((golos::chain::signed_block)),
1349-
(block_id)(signing_key)(transaction_ids))
1350-
13511339
FC_REFLECT( (golos::wallet::brain_key_info), (brain_priv_key)(wif_priv_key) (pub_key))
13521340

13531341
FC_REFLECT( (golos::wallet::plain_keys), (checksum)(keys) )

libraries/wallet/wallet.cpp

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1262,7 +1262,7 @@ namespace golos { namespace wallet {
12621262
return my->copy_wallet_file(destination_filename);
12631263
}
12641264

1265-
optional<signed_block_with_info> wallet_api::get_block(uint32_t num) {
1265+
optional<golos::api::annotated_signed_block> wallet_api::get_block(uint32_t num) {
12661266
return my->_remote_database_api->get_block( num );
12671267
}
12681268

@@ -1644,15 +1644,6 @@ fc::ecc::private_key wallet_api::derive_private_key(const std::string& prefix_st
16441644
return std::make_pair( public_key_type( priv.get_public_key() ), key_to_wif( priv ) );
16451645
}
16461646

1647-
signed_block_with_info::signed_block_with_info(const signed_block& block): signed_block(block) {
1648-
block_id = id();
1649-
signing_key = signee();
1650-
transaction_ids.reserve(transactions.size());
1651-
for (const signed_transaction& tx : transactions) {
1652-
transaction_ids.push_back(tx.id());
1653-
}
1654-
}
1655-
16561647
witness_api::feed_history_api_object wallet_api::get_feed_history()const {
16571648
return my->_remote_witness_api->get_feed_history();
16581649
}

plugins/account_history/plugin.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ if (options.count(name)) { \
513513
}
514514

515515
void plugin::set_program_options(bpo::options_description& cli, bpo::options_description& cfg) {
516-
cli.add_options()(
516+
cfg.add_options()(
517517
"track-account-range",
518518
bpo::value<std::vector<std::string>>()->composing()->multitoken(),
519519
"Defines a range of accounts to track as a json pair [\"from\",\"to\"] [from,to]. "
@@ -525,7 +525,6 @@ if (options.count(name)) { \
525525
"Defines a individual account to track (in addition to ranges). "
526526
"Can be specified multiple times"
527527
);
528-
cfg.add(cli);
529528
}
530529

531530
void plugin::plugin_initialize(const bpo::variables_map& options) {

plugins/database_api/api.cpp

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <golos/protocol/get_config.hpp>
66
#include <golos/protocol/exceptions.hpp>
77
#include <golos/chain/operation_notification.hpp>
8+
#include <golos/api/block_objects.hpp>
89

910
#include <fc/smart_ref_impl.hpp>
1011

@@ -15,6 +16,8 @@
1516

1617
namespace golos { namespace plugins { namespace database_api {
1718

19+
using golos::api::annotated_signed_block;
20+
using golos::api::block_operations;
1821

1922
template<typename arg>
2023
struct callback_info {
@@ -49,31 +52,6 @@ using pending_tx_callback_info = callback_info<const signed_transaction&>;
4952
using pending_tx_callback = pending_tx_callback_info::callback_t;
5053

5154

52-
// block_operation used in block_applied_callback to represent virtual operations.
53-
// default operation type have no position info (trx, op_in_trx)
54-
struct block_operation {
55-
block_operation(const operation_notification& o) :
56-
trx_in_block(o.trx_in_block),
57-
op_in_trx(o.op_in_trx),
58-
virtual_op(o.virtual_op),
59-
op(o.op) {};
60-
61-
uint32_t trx_in_block = 0;
62-
uint16_t op_in_trx = 0;
63-
uint32_t virtual_op = 0;
64-
operation op;
65-
};
66-
67-
using block_operations = std::vector<block_operation>;
68-
69-
struct block_with_vops : public signed_block {
70-
block_with_vops(signed_block b, block_operations ops): signed_block(b), _virtual_operations(ops) {
71-
};
72-
73-
// name field starting with _ coz it's not directly related to block
74-
block_operations _virtual_operations;
75-
};
76-
7755
struct virtual_operations {
7856
virtual_operations(uint32_t block_num, block_operations ops): block_num(block_num), operations(ops) {
7957
};
@@ -243,7 +221,7 @@ DEFINE_API(plugin, set_block_applied_callback) {
243221
r = fc::variant(virtual_operations(block.block_num(), my->get_block_vops()));
244222
break;
245223
case full:
246-
r = fc::variant(block_with_vops(block, my->get_block_vops()));
224+
r = fc::variant(annotated_signed_block(block, my->get_block_vops()));
247225
break;
248226
default:
249227
break;
@@ -926,9 +904,5 @@ void plugin::plugin_startup() {
926904
} } } // golos::plugins::database_api
927905

928906
FC_REFLECT((golos::plugins::database_api::virtual_operations), (block_num)(operations))
929-
FC_REFLECT((golos::plugins::database_api::block_operation),
930-
(trx_in_block)(op_in_trx)(virtual_op)(op))
931-
FC_REFLECT_DERIVED((golos::plugins::database_api::block_with_vops), ((golos::protocol::signed_block)),
932-
(_virtual_operations))
933907
FC_REFLECT_ENUM(golos::plugins::database_api::block_applied_callback_result_type,
934908
(block)(header)(virtual_ops)(full))

plugins/debug_node/plugin.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ void plugin::set_program_options (
107107
boost::program_options::options_description &cli,
108108
boost::program_options::options_description &cfg
109109
) {
110-
cli.add_options()
110+
cfg.add_options()
111111
("debug-node-edit-script,e",
112112
boost::program_options::value< std::vector< std::string > >()->composing(),
113113
"Database edits to apply on startup (may specify multiple times)")

0 commit comments

Comments
 (0)