39#define TREZOR_TEST_FEE 90000000000
40#define TREZOR_TEST_CLSAG_MIXIN 11
41#define TREZOR_TEST_HF15_MIXIN 16
42#define TREZOR_TEST_MIXIN TREZOR_TEST_CLSAG_MIXIN
58 virtual bool generate(std::vector<test_event_entry>& events);
59 virtual void load(std::vector<test_event_entry>& events);
60 virtual void fix_hf(std::vector<test_event_entry>& events);
66 virtual void test_setup(std::vector<test_event_entry>& events);
69 std::vector<test_event_entry>& events,
71 const std::vector<cryptonote::transaction> &txs);
74 std::vector<test_event_entry>& events,
75 std::vector<tools::wallet2::pending_tx>& ptxs,
76 std::vector<cryptonote::address_parse_info>& dsts_info,
78 std::vector<tools::wallet2*> wallets,
82 std::vector<test_event_entry>& events,
83 std::vector<tools::wallet2*> wallets,
84 const std::vector<tools::wallet2::pending_tx> &ptxs,
85 const std::vector<std::string> &aux_tx_info);
87 virtual void mine_and_test(std::vector<test_event_entry>& events);
116 virtual bool verify_tx_key(const ::crypto::secret_key & tx_priv, const ::crypto::public_key & tx_pub,
const subaddresses_t & subs);
145 template<
class Archive>
168 tsx_builder *
compute_sources(boost::optional<size_t> num_utxo=boost::none, boost::optional<uint64_t> min_amount=boost::none, ssize_t offset=-1,
int step=1, boost::optional<fnc_accept_tx_source_t> fnc_accept=boost::none);
169 tsx_builder *
compute_sources_to_sub(boost::optional<size_t> num_utxo=boost::none, boost::optional<uint64_t> min_amount=boost::none, ssize_t offset=-1,
int step=1, boost::optional<fnc_accept_tx_source_t> fnc_accept=boost::none);
170 tsx_builder *
compute_sources_to_sub_acc(boost::optional<size_t> num_utxo=boost::none, boost::optional<uint64_t> min_amount=boost::none, ssize_t offset=-1,
int step=1, boost::optional<fnc_accept_tx_source_t> fnc_accept=boost::none);
182 std::vector<tools::wallet2::pending_tx>
build();
188 std::vector<tools::wallet2::pending_tx>
m_ptxs;
217 bool compute_key_image(const ::cryptonote::account_keys &ack, const ::crypto::public_key &out_key,
218 const ::crypto::key_derivation &recv_derivation,
size_t real_output_index,
224 hw::tx_aux_data &aux_data, std::shared_ptr<hw::trezor::protocol::tx::Signer> &signer)
override;
231 bool generate(std::vector<test_event_entry>& events)
override;
237 bool generate(std::vector<test_event_entry>& events)
override;
243 bool generate(std::vector<test_event_entry>& events)
override;
249 bool generate(std::vector<test_event_entry>& events)
override;
255 bool generate(std::vector<test_event_entry>& events)
override;
261 bool generate(std::vector<test_event_entry>& events)
override;
267 bool generate(std::vector<test_event_entry>& events)
override;
273 bool generate(std::vector<test_event_entry>& events)
override;
279 bool generate(std::vector<test_event_entry>& events)
override;
285 bool generate(std::vector<test_event_entry>& events)
override;
291 bool generate(std::vector<test_event_entry>& events)
override;
297 bool generate(std::vector<test_event_entry>& events)
override;
303 bool generate(std::vector<test_event_entry>& events)
override;
309 bool generate(std::vector<test_event_entry>& events)
override;
315 bool generate(std::vector<test_event_entry>& events)
override;
321 bool generate(std::vector<test_event_entry>& events)
override;
327 bool generate(std::vector<test_event_entry>& events)
override;
336 bool generate(std::vector<test_event_entry>& events)
override;
std::vector< std::pair< uint8_t, uint64_t > > v_hardforks_t
Definition chaingen.h:137
std::unordered_map< crypto::public_key, cryptonote::subaddress_index > subaddresses_t
Definition chaingen.h:365
boost::variant< cryptonote::account_public_address, cryptonote::account_keys, cryptonote::account_base, cryptonote::tx_destination_entry > var_addr_t
Definition chaingen.h:368
Definition chaingen.h:377
Definition cryptonote_basic.h:205
size_t m_compute_key_image_ctr
Definition trezor_tests.h:210
bool compute_key_image(const ::cryptonote::account_keys &ack, const ::crypto::public_key &out_key, const ::crypto::key_derivation &recv_derivation, size_t real_output_index, const ::cryptonote::subaddress_index &received_index, ::cryptonote::keypair &in_ephemeral, ::crypto::key_image &ki) override
Definition trezor_tests.cpp:1530
void setup_for_tests(const std::string &trezor_path, const std::string &seed, cryptonote::network_type network_type)
Definition trezor_tests.cpp:1513
void clear_test_counters()
Definition trezor_tests.cpp:1508
void tx_sign(hw::wallet_shim *wallet, const ::tools::wallet2::unsigned_tx_set &unsigned_tx, size_t idx, hw::tx_aux_data &aux_data, std::shared_ptr< hw::trezor::protocol::tx::Signer > &signer) override
Definition trezor_tests.cpp:1542
device_trezor_test()
Definition trezor_tests.cpp:1506
size_t m_tx_sign_ctr
Definition trezor_tests.h:209
Definition trezor_tests.h:265
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1694
Definition trezor_tests.h:259
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1677
Definition trezor_tests.h:253
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1662
Definition trezor_tests.h:301
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1790
Definition trezor_tests.h:277
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1727
Definition trezor_tests.h:313
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1828
Definition trezor_tests.h:295
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1773
Definition trezor_tests.h:289
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1757
Definition trezor_tests.h:307
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1807
Definition trezor_tests.h:283
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1742
Definition trezor_tests.h:271
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1712
Definition trezor_tests.h:49
bool m_heavy_tests
Definition trezor_tests.h:129
std::vector< test_event_entry > m_events
Definition trezor_tests.h:126
size_t num_mixin() const
Definition trezor_tests.h:98
cryptonote::account_base m_bob_account
Definition trezor_tests.h:135
virtual void setup_trezor()
Definition trezor_tests.cpp:640
virtual void update_client_settings()
Definition trezor_tests.cpp:704
std::shared_ptr< mock_daemon > daemon() const
Definition trezor_tests.h:100
std::string m_trezor_path
Definition trezor_tests.h:128
virtual void update_trackers(std::vector< test_event_entry > &events)
Definition trezor_tests.cpp:966
cryptonote::network_type m_network_type
Definition trezor_tests.h:120
block_tracker m_bt
Definition trezor_tests.h:119
void daemon(std::shared_ptr< mock_daemon > daemon)
Definition trezor_tests.h:101
uint8_t m_top_hard_fork
Definition trezor_tests.h:123
static const uint64_t m_wallet_ts
Definition trezor_tests.h:105
virtual ~gen_trezor_base()
Definition trezor_tests.h:55
static const std::string m_alice_view_private
Definition trezor_tests.h:110
cryptonote::account_base m_alice_account
Definition trezor_tests.h:136
bool m_live_refresh_enabled
Definition trezor_tests.h:132
virtual void clear()
Definition trezor_tests.cpp:675
cryptonote::block m_head
Definition trezor_tests.h:125
virtual void load(std::vector< test_event_entry > &events)
Definition trezor_tests.cpp:877
static const std::string m_device_seed
Definition trezor_tests.h:108
test_generator m_generator
Definition trezor_tests.h:118
friend class tsx_builder
Definition trezor_tests.h:51
virtual void test_trezor_tx(std::vector< test_event_entry > &events, std::vector< tools::wallet2::pending_tx > &ptxs, std::vector< cryptonote::address_parse_info > &dsts_info, test_generator &generator, std::vector< tools::wallet2 * > wallets, bool is_sweep=false)
Definition trezor_tests.cpp:1016
virtual void add_transactions_to_events(std::vector< test_event_entry > &events, test_generator &generator, const std::vector< cryptonote::transaction > &txs)
Definition trezor_tests.cpp:992
virtual void set_hard_fork(uint8_t hf)
Definition trezor_tests.cpp:1267
hw::trezor::device_trezor * m_trezor
Definition trezor_tests.h:138
v_hardforks_t m_hard_forks
Definition trezor_tests.h:124
gen_trezor_base()
Definition trezor_tests.cpp:618
cryptonote::account_base m_miner_account
Definition trezor_tests.h:134
virtual bool verify_tx_key(const ::crypto::secret_key &tx_priv, const ::crypto::public_key &tx_pub, const subaddresses_t &subs)
Definition trezor_tests.cpp:1168
std::unique_ptr< tools::wallet2 > m_wl_bob
Definition trezor_tests.h:140
virtual void setup_args(const std::string &trezor_path, bool heavy_tests=false)
Definition trezor_tests.cpp:634
crypto::hash head_hash() const
Definition trezor_tests.h:93
void rct_config(rct::RCTConfig rct_config)
Definition trezor_tests.h:96
static const std::string m_alice_spend_private
Definition trezor_tests.h:109
virtual void mine_and_test(std::vector< test_event_entry > &events)
Definition trezor_tests.cpp:1240
virtual void init_fields()
Definition trezor_tests.cpp:692
virtual void add_shared_events(std::vector< test_event_entry > &events)
Definition trezor_tests.cpp:684
cryptonote::account_base m_eve_account
Definition trezor_tests.h:137
virtual void rewind_blocks(std::vector< test_event_entry > &events, size_t rewind_n, uint8_t hf)
Definition trezor_tests.cpp:935
virtual bool generate(std::vector< test_event_entry > &events)
Definition trezor_tests.cpp:712
static const std::string m_master_seed_str
Definition trezor_tests.h:107
friend class boost::serialization::access
Definition trezor_tests.h:143
bool heavy_tests() const
Definition trezor_tests.h:95
std::unique_ptr< tools::wallet2 > m_wl_alice
Definition trezor_tests.h:139
virtual void test_setup(std::vector< test_event_entry > &events)
Definition trezor_tests.cpp:971
static const uint64_t m_ts_start
Definition trezor_tests.h:104
virtual void fork(gen_trezor_base &other)
Definition trezor_tests.cpp:650
rct::RCTConfig m_rct_config
Definition trezor_tests.h:131
std::shared_ptr< mock_daemon > m_daemon
Definition trezor_tests.h:121
cryptonote::network_type nettype() const
Definition trezor_tests.h:99
virtual void test_get_tx(std::vector< test_event_entry > &events, std::vector< tools::wallet2 * > wallets, const std::vector< tools::wallet2::pending_tx > &ptxs, const std::vector< std::string > &aux_tx_info)
Definition trezor_tests.cpp:1184
static const std::string m_device_name
Definition trezor_tests.h:106
cryptonote::block head_block() const
Definition trezor_tests.h:94
std::unique_ptr< tools::wallet2 > m_wl_eve
Definition trezor_tests.h:141
void serialize(Archive &ar, const unsigned int)
Definition trezor_tests.h:146
uint8_t cur_hf() const
Definition trezor_tests.h:97
bool m_test_get_tx_key
Definition trezor_tests.h:130
virtual void fix_hf(std::vector< test_event_entry > &events)
Definition trezor_tests.cpp:947
Definition trezor_tests.h:235
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1584
Definition trezor_tests.h:241
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1590
Definition trezor_tests.h:229
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1548
Definition trezor_tests.h:247
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1596
Definition trezor_tests.h:325
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1871
Definition trezor_tests.h:319
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1856
Definition device_cold.hpp:44
Definition chaingen.h:166
Definition chaingen.h:183
Definition trezor_tests.h:153
std::vector< cryptonote::address_parse_info > dest_info()
Definition trezor_tests.h:183
std::vector< cryptonote::tx_source_entry > m_sources
Definition trezor_tests.h:197
gen_trezor_base * m_tester
Definition trezor_tests.h:186
tsx_builder * mixin(size_t mixin=TREZOR_TEST_MIXIN)
Definition trezor_tests.h:163
std::vector< cryptonote::tx_destination_entry > m_destinations_orig
Definition trezor_tests.h:199
tsx_builder * clear_current()
Definition trezor_tests.cpp:1392
tsx_builder * fee(uint64_t fee=TREZOR_TEST_FEE)
Definition trezor_tests.h:164
std::vector< tools::wallet2::pending_tx > build()
Definition trezor_tests.cpp:1501
std::vector< tools::wallet2::pending_tx > m_ptxs
Definition trezor_tests.h:188
tsx_builder * destinations(std::vector< cryptonote::tx_destination_entry > &dsts)
Definition trezor_tests.cpp:1362
std::vector< size_t > m_selected_transfers
Definition trezor_tests.h:196
tsx_builder * from(tools::wallet2 *from, uint32_t account=0)
Definition trezor_tests.h:166
tsx_builder * construct_pending_tx(tools::wallet2::pending_tx &ptx, boost::optional< std::vector< uint8_t > > extra=boost::none)
Definition trezor_tests.cpp:1441
tsx_builder * build_tx()
Definition trezor_tests.cpp:1405
tsx_builder()
Definition trezor_tests.h:155
tsx_builder * cur_height(uint64_t cur_height)
Definition trezor_tests.h:162
std::vector< cryptonote::address_parse_info > m_dsts_info
Definition trezor_tests.h:200
tsx_builder * sources(std::vector< cryptonote::tx_source_entry > &sources, std::vector< size_t > &selected_transfers)
Definition trezor_tests.cpp:1300
tsx_builder(gen_trezor_base *tester)
Definition trezor_tests.h:158
tsx_builder * add_destination(const cryptonote::tx_destination_entry &dst)
Definition trezor_tests.cpp:1368
tsx_builder * set_integrated(size_t idx)
Definition trezor_tests.cpp:1386
size_t m_mixin
Definition trezor_tests.h:191
tsx_builder * compute_sources_to_sub(boost::optional< size_t > num_utxo=boost::none, boost::optional< uint64_t > min_amount=boost::none, ssize_t offset=-1, int step=1, boost::optional< fnc_accept_tx_source_t > fnc_accept=boost::none)
Definition trezor_tests.cpp:1332
uint64_t m_cur_height
Definition trezor_tests.h:187
tsx_builder * compute_sources_to_sub_acc(boost::optional< size_t > num_utxo=boost::none, boost::optional< uint64_t > min_amount=boost::none, ssize_t offset=-1, int step=1, boost::optional< fnc_accept_tx_source_t > fnc_accept=boost::none)
Definition trezor_tests.cpp:1347
rct::RCTConfig m_rct_config
Definition trezor_tests.h:203
std::vector< cryptonote::tx_destination_entry > m_destinations
Definition trezor_tests.h:198
tsx_builder * rct_config(const rct::RCTConfig &rct_config)
Definition trezor_tests.h:177
uint32_t m_account
Definition trezor_tests.h:194
tsx_builder * compute_sources(boost::optional< size_t > num_utxo=boost::none, boost::optional< uint64_t > min_amount=boost::none, ssize_t offset=-1, int step=1, boost::optional< fnc_accept_tx_source_t > fnc_accept=boost::none)
Definition trezor_tests.cpp:1307
cryptonote::transaction m_tx
Definition trezor_tests.h:195
tools::wallet2 * m_from
Definition trezor_tests.h:193
std::unordered_set< size_t > m_integrated
Definition trezor_tests.h:201
uint64_t m_fee
Definition trezor_tests.h:192
tsx_builder * payment_id(const std::string &payment_id)
Definition trezor_tests.h:165
std::string m_payment_id
Definition trezor_tests.h:202
Definition trezor_tests.h:332
boost::filesystem::path m_wallet_dir
Definition trezor_tests.h:339
virtual ~wallet_api_tests()
Definition trezor_tests.cpp:1906
bool generate(std::vector< test_event_entry > &events) override
Definition trezor_tests.cpp:1921
void init()
Definition trezor_tests.cpp:1900
const uint8_t seed[32]
Definition code-generator.cpp:37
binary_archive< false > ar
Definition cold-outputs.cpp:54
std::vector< tools::wallet2::pending_tx > ptx
Definition cold-transaction.cpp:56
#define HF_VERSION_BULLETPROOF_PLUS
Definition cryptonote_config.h:192
POD_CLASS key_image
Definition crypto.h:95
POD_CLASS hash
Definition hash.h:49
network_type
Definition cryptonote_config.h:302
@ RangeProofPaddedBulletproof
Definition rctTypes.h:307
crypto::hash get_block_hash(uint64_t height)
Definition output_distribution.cpp:95
unsigned int uint32_t
Definition stdint.h:126
unsigned char uint8_t
Definition stdint.h:124
unsigned __int64 uint64_t
Definition stdint.h:136
Definition cryptonote_basic.h:475
Definition cryptonote_basic.h:539
Definition cryptonote_tx_utils.h:75
Definition device_cold.hpp:40
Definition rctTypes.h:308
#define TREZOR_TEST_FEE
Definition trezor_tests.h:39
#define TREZOR_TEST_HF15_MIXIN
Definition trezor_tests.h:41
#define TREZOR_TEST_CLSAG_MIXIN
Definition trezor_tests.h:40
#define TREZOR_TEST_MIXIN
Definition trezor_tests.h:42