36 #include "../core_tests/chaingen.h" 37 #include "../core_tests/wallet_tools.h" 39 #define TREZOR_TEST_FEE 90000000000 40 #define TREZOR_TEST_MIXIN 11 56 virtual bool generate(std::vector<test_event_entry>& events);
57 virtual void load(std::vector<test_event_entry>& events);
58 virtual void fix_hf(std::vector<test_event_entry>& events);
64 virtual void test_setup(std::vector<test_event_entry>& events);
67 std::vector<test_event_entry>& events,
69 const std::vector<cryptonote::transaction> &txs);
72 std::vector<test_event_entry>& events,
73 std::vector<tools::wallet2::pending_tx>& ptxs,
74 std::vector<cryptonote::address_parse_info>& dsts_info,
76 std::vector<tools::wallet2*> wallets,
80 std::vector<test_event_entry>& events,
81 std::vector<tools::wallet2*> wallets,
82 const std::vector<tools::wallet2::pending_tx> &ptxs,
83 const std::vector<std::string> &aux_tx_info);
85 virtual void mine_and_test(std::vector<test_event_entry>& events);
142 template<
class Archive>
165 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);
166 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);
167 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);
179 std::vector<tools::wallet2::pending_tx>
build();
185 std::vector<tools::wallet2::pending_tx>
m_ptxs;
221 hw::tx_aux_data &aux_data, std::shared_ptr<hw::trezor::protocol::tx::Signer> &signer)
override;
228 bool generate(std::vector<test_event_entry>& events)
override;
234 bool generate(std::vector<test_event_entry>& events)
override;
240 bool generate(std::vector<test_event_entry>& events)
override;
246 bool generate(std::vector<test_event_entry>& events)
override;
252 bool generate(std::vector<test_event_entry>& events)
override;
258 bool generate(std::vector<test_event_entry>& events)
override;
264 bool generate(std::vector<test_event_entry>& events)
override;
270 bool generate(std::vector<test_event_entry>& events)
override;
276 bool generate(std::vector<test_event_entry>& events)
override;
282 bool generate(std::vector<test_event_entry>& events)
override;
288 bool generate(std::vector<test_event_entry>& events)
override;
294 bool generate(std::vector<test_event_entry>& events)
override;
300 bool generate(std::vector<test_event_entry>& events)
override;
306 bool generate(std::vector<test_event_entry>& events)
override;
312 bool generate(std::vector<test_event_entry>& events)
override;
318 bool generate(std::vector<test_event_entry>& events)
override;
327 bool generate(std::vector<test_event_entry>& events)
override;
bool generate(std::vector< test_event_entry > &events) override
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
bool generate(std::vector< test_event_entry > &events) override
cryptonote::network_type m_network_type
cryptonote::transaction m_tx
virtual bool verify_tx_key(const ::crypto::secret_key &tx_priv, const ::crypto::public_key &tx_pub, const subaddresses_t &subs)
virtual void test_setup(std::vector< test_event_entry > &events)
rct::RCTConfig m_rct_config
void rct_config(rct::RCTConfig rct_config)
tsx_builder * cur_height(uint64_t cur_height)
bool generate(std::vector< test_event_entry > &events) override
std::vector< cryptonote::tx_source_entry > m_sources
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)
bool generate(std::vector< test_event_entry > &events) override
virtual void add_shared_events(std::vector< test_event_entry > &events)
tsx_builder * mixin(size_t mixin=TREZOR_TEST_MIXIN)
std::vector< size_t > m_selected_transfers
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)
static const uint64_t m_wallet_ts
bool m_live_refresh_enabled
std::unordered_map< crypto::public_key, cryptonote::subaddress_index > subaddresses_t
tsx_builder * sources(std::vector< cryptonote::tx_source_entry > &sources, std::vector< size_t > &selected_transfers)
bool generate(std::vector< test_event_entry > &events) override
boost::filesystem::path m_wallet_dir
std::unordered_set< size_t > m_integrated
cryptonote::account_base m_alice_account
epee::mlocked< tools::scrubbed< ec_scalar > > secret_key
gen_trezor_base * m_tester
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)
bool generate(std::vector< test_event_entry > &events) override
boost::variant< cryptonote::account_public_address, cryptonote::account_keys, cryptonote::account_base, cryptonote::tx_destination_entry > var_addr_t
virtual void setup_args(const std::string &trezor_path, bool heavy_tests=false)
bool generate(std::vector< test_event_entry > &events) override
cryptonote::block head_block() const
tsx_builder(gen_trezor_base *tester)
static const std::string m_alice_view_private
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)
std::string m_trezor_path
bool generate(std::vector< test_event_entry > &events) override
std::vector< cryptonote::tx_destination_entry > m_destinations
tools::wallet2::unsigned_tx_set unsigned_tx_set
virtual ~wallet_api_tests()
bool generate(std::vector< test_event_entry > &events) override
cryptonote::account_base m_miner_account
bool generate(std::vector< test_event_entry > &events) override
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
std::vector< cryptonote::tx_destination_entry > m_destinations_orig
std::unique_ptr< tools::wallet2 > m_wl_bob
tsx_builder * fee(uint64_t fee=TREZOR_TEST_FEE)
virtual void fork(gen_trezor_base &other)
std::vector< cryptonote::address_parse_info > dest_info()
tsx_builder * construct_pending_tx(tools::wallet2::pending_tx &ptx, boost::optional< std::vector< uint8_t >> extra=boost::none)
virtual void update_trackers(std::vector< test_event_entry > &events)
void setup_for_tests(const std::string &trezor_path, const std::string &seed, cryptonote::network_type network_type)
tsx_builder * rct_config(const rct::RCTConfig &rct_config)
virtual void init_fields()
bool generate(std::vector< test_event_entry > &events) override
#define TREZOR_TEST_MIXIN
v_hardforks_t m_hard_forks
bool generate(std::vector< test_event_entry > &events) override
bool generate(std::vector< test_event_entry > &events) override
virtual void add_transactions_to_events(std::vector< test_event_entry > &events, test_generator &generator, const std::vector< cryptonote::transaction > &txs)
static const std::string m_alice_spend_private
virtual void fix_hf(std::vector< test_event_entry > &events)
unsigned __int64 uint64_t
void daemon(std::shared_ptr< mock_daemon > daemon)
friend class boost::serialization::access
bool generate(std::vector< test_event_entry > &events) override
rct::RCTConfig m_rct_config
static const std::string m_device_name
crypto::hash head_hash() const
tsx_builder * payment_id(const std::string &payment_id)
virtual ~gen_trezor_base()
static const std::string m_device_seed
hw::trezor::device_trezor * m_trezor
size_t m_compute_key_image_ctr
std::vector< tools::wallet2::pending_tx > build()
static const std::string m_master_seed_str
virtual void rewind_blocks(std::vector< test_event_entry > &events, size_t rewind_n, uint8_t hf)
virtual bool generate(std::vector< test_event_entry > &events)
const T & move(const T &t)
std::unique_ptr< tools::wallet2 > m_wl_eve
std::vector< test_event_entry > m_events
std::shared_ptr< mock_daemon > m_daemon
cryptonote::account_base m_bob_account
test_generator m_generator
std::shared_ptr< mock_daemon > daemon() const
std::vector< cryptonote::address_parse_info > m_dsts_info
bool generate(std::vector< test_event_entry > &events) override
virtual void setup_trezor()
std::vector< tools::wallet2::pending_tx > m_ptxs
bool generate(std::vector< test_event_entry > &events) override
crypto::hash get_block_hash(uint64_t height)
void serialize(Archive &ar, const unsigned int)
virtual void update_client_settings()
tsx_builder * from(tools::wallet2 *from, uint32_t account=0)
bool generate(std::vector< test_event_entry > &events) override
void clear_test_counters()
static const uint64_t m_ts_start
tsx_builder * destinations(std::vector< cryptonote::tx_destination_entry > &dsts)
cryptonote::account_base m_eve_account
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)
tsx_builder * add_destination(const cryptonote::tx_destination_entry &dst)
std::unique_ptr< tools::wallet2 > m_wl_alice
virtual void load(std::vector< test_event_entry > &events)
tsx_builder * set_integrated(size_t idx)
virtual void set_hard_fork(uint8_t hf)
std::vector< std::pair< uint8_t, uint64_t > > v_hardforks_t
tsx_builder * clear_current()
virtual void mine_and_test(std::vector< test_event_entry > &events)
cryptonote::network_type nettype() const