#pragma once #include #include #include #include #include #include class TxBuilder { struct Inputs { BlindingFactor total_blind; SecretKey total_key; std::vector inputs; }; struct Outputs { BlindingFactor total_blind; SecretKey total_key; std::vector outputs; std::vector coins; }; public: static mw::Transaction::CPtr BuildTx( const std::vector& input_coins, const std::vector& recipients, const std::vector& pegouts, const boost::optional& pegin_amount, const CAmount fee, std::vector& output_coins ); private: static Inputs CreateInputs(const std::vector& input_coins); static Outputs CreateOutputs(const std::vector& recipients); static CAmount TotalAmount(const std::vector& coins); };