Go to the documentation of this file.
17 #ifndef USGOV_33de4fece6646b4a064a30507e7a1a35c3b5bcd4dc9c1c87059904e7ac05e335
18 #define USGOV_33de4fece6646b4a064a30507e7a1a35c3b5bcd4dc9c1c87059904e7ac05e335
25 #include <unordered_map>
26 #include <unordered_set>
34 namespace us {
namespace gov {
37 using socket::datagram;
38 using engine::local_deltas;
39 using crypto::ripemd160;
49 static constexpr uint16_t magic{200};
55 void dump(
const string& prefix, ostream&)
const;
61 void dump(
const string& prefix, ostream&)
const;
77 input_t(
const hash_t& address,
const cash_t& amount,
const string& locking_program_input): address(address), amount(amount), locking_program_input(locking_program_input) {}
123 string name()
const override {
return "cash::tx"; };
130 void dump(
const string& prefix, ostream&)
const;
side_t outputs
Definition: tx.h:58
void add_output(const hash_t &addr, const cash_t &amount)
static bool from_stream(sigcode_t &, istream &is)
void write_pretty(ostream &) const override
int64_t cash_t
Definition: tx.h:47
void write_sigmsg(ec::sigmsg_hasher_t &, const sigcode_section_t &) const
void write_pretty(const string &prefix, ostream &os) const
void to_stream(ostream &os) const
ko from_stream(istream &)
void write_sigmsg(ec::sigmsg_hasher_t &, const sigcode_section_t &) const
void finalize(unsigned char hash[output_size])
void write(const unsigned char *data, size_t len)
hash_t address
Definition: tx.h:96
output_t(const hash_t &address, const cash_t &amount)
Definition: tx.h:90
string name() const override
Definition: tx.h:123
inputs_t inputs
Definition: tx.h:146
static void from_stream(side_t &, istream &is)
bool verify(ostream &os) const override
void dump(const string &prefix, ostream &) const
std::string decode_string(const std::string &s)
Definition: base58.cpp:44
relay::peer_t peer_t
Definition: daemon.h:31
Definition: ripemd160.h:38
void write_pretty(const string &prefix, ostream &os) const
ec::sigmsg_hasher_t::value_type get_hash(const sigcode_t &) const
#define unlikely(x)
Definition: likely.h:30
void write_pretty(const string &prefix, ostream &os) const
static pair< ko, sigcode_t > from_b58(const string &)
keys::pub_t pubkey_t
Definition: app.h:53
hash_t compute_hash() const override
datagram * get_datagram(uint16_t seq) const
void add_input(const hash_t &addr, const cash_t &amount)
void dump(ostream &) const
void dump(const string &prefix, ostream &) const
void write_sigmsg(ec::sigmsg_hasher_t &, const sigcode_t &) const
static pair< ko, tx * > from_b58(const string &)
ko from_stream(istream &)
engine::evidence b
Definition: tx.h:46
side_t inputs
Definition: tx.h:57
void to_stream(ostream &os) const
Definition: datagram.h:44
void write_sigmsg(ec::sigmsg_hasher_t &) const
cash_t amount
Definition: tx.h:97
tx::cash_t cash_t
Definition: app.h:56
void to_stream(ostream &) const
sections_t sections
Definition: tx.h:162
void to_stream(ostream &) const
bool check_amounts() const
void write_pretty(const string &prefix, ostream &os) const
peer::daemon::pub_t pub_t
Definition: auth_app.h:53
section_t(const hash_t &token)
Definition: tx.h:134
sigcode_t get_sigcode_all() const
sigcode_t make_sigcode_all() const
bool check_amounts() const
section_t & add_section(const hash_t &token)
const ko_t * ko
Definition: ko.h:27
Definition: ripemd160.h:34
ko from_stream(istream &)
static constexpr ko ok
Definition: ko.h:28
void to_stream(ostream &) const
void add_input(const hash_t &addr, const cash_t &amount, const string &locking_program_input)
cash_t required_input() const
crypto::ec::keys keys
Definition: app.h:52
void write_sigmsg(ec::sigmsg_hasher_t &, const sigcode_t &sh) const
void to_stream(ostream &) const
static pair< ko, output_t > from_stream(istream &)
std::string encode(const std::string &s)
Definition: base58.cpp:62
void to_stream(ostream &) const
us::gov::cash::tx c
Definition: tx.cpp:32
void write(const vector< unsigned char > &)
bool check_amounts() const
iterator find(const hash_t &token)
Definition: evidence.h:31
static void from_stream(sigcode_section_t &, istream &is)
void dump(const string &prefix, ostream &) const
outputs_t outputs
Definition: tx.h:147
void finalize(unsigned char hash[output_size])
hash_t token
Definition: tx.h:145
output_t()
Definition: tx.h:89
const_iterator find(const hash_t &token) const
void to_stream(ostream &os) const
static pair< ko, tx * > from_stream(istream &)
~tx() override
Definition: tx.h:115
#define log
Definition: gov.h:83
section_t()
Definition: tx.h:133
cash_t required_output() const
#define UGAS
Definition: config.h:22
static ostream & operator<<(ostream &os, const cash::file_tx &t)
Definition: file_tx.h:71