#420 - constructor for transactions from raw_tx
This commit is contained in:
parent
c420c38cc9
commit
1671a7e4fc
2 changed files with 33 additions and 0 deletions
|
|
@ -24,6 +24,16 @@ const secp256k1_context *eth_context() {
|
|||
|
||||
//! transaction
|
||||
|
||||
base_transaction::base_transaction(const std::string &raw_tx) {
|
||||
}
|
||||
|
||||
//! transaction
|
||||
|
||||
transaction::transaction(const std::string &raw_tx) :
|
||||
base_transaction{raw_tx} {
|
||||
deserialize(raw_tx);
|
||||
}
|
||||
|
||||
const transaction &transaction::sign(const std::string &private_key) const {
|
||||
return *this;
|
||||
}
|
||||
|
|
@ -54,6 +64,11 @@ void transaction::deserialize(const std::string &raw_tx) {
|
|||
|
||||
//! raw_transaction
|
||||
|
||||
raw_transaction::raw_transaction(const std::string &raw_tx) :
|
||||
base_transaction{raw_tx} {
|
||||
deserialize(raw_tx);
|
||||
}
|
||||
|
||||
bytes raw_transaction::hash() const {
|
||||
bytes hash;
|
||||
hash.resize(32);
|
||||
|
|
@ -134,6 +149,11 @@ void raw_transaction::deserialize(const std::string &raw_tx) {
|
|||
|
||||
//! signed_transaction
|
||||
|
||||
signed_transaction::signed_transaction(const std::string &raw_tx) :
|
||||
base_transaction{raw_tx} {
|
||||
deserialize(raw_tx);
|
||||
}
|
||||
|
||||
std::string signed_transaction::recover(const std::string &chain_id) const {
|
||||
fc::ecc::compact_signature input64;
|
||||
fc::from_hex(r, (char *)&input64.at(1), 32);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,10 @@
|
|||
namespace graphene { namespace peerplays_sidechain { namespace ethereum {
|
||||
|
||||
class base_transaction {
|
||||
public:
|
||||
base_transaction() = default;
|
||||
base_transaction(const std::string &raw_tx);
|
||||
|
||||
virtual std::string serialize() const = 0;
|
||||
virtual void deserialize(const std::string &raw_tx) = 0;
|
||||
};
|
||||
|
|
@ -19,6 +23,9 @@ public:
|
|||
std::string to;
|
||||
std::string data;
|
||||
|
||||
transaction() = default;
|
||||
transaction(const std::string &raw_tx);
|
||||
|
||||
const transaction &sign(const std::string &private_key) const;
|
||||
|
||||
virtual std::string serialize() const override;
|
||||
|
|
@ -36,6 +43,9 @@ public:
|
|||
std::string data;
|
||||
std::string chain_id;
|
||||
|
||||
raw_transaction() = default;
|
||||
raw_transaction(const std::string &raw_tx);
|
||||
|
||||
bytes hash() const;
|
||||
signed_transaction sign(const std::string &private_key) const;
|
||||
|
||||
|
|
@ -55,6 +65,9 @@ public:
|
|||
std::string r;
|
||||
std::string s;
|
||||
|
||||
signed_transaction() = default;
|
||||
signed_transaction(const std::string &raw_tx);
|
||||
|
||||
std::string recover(const std::string &chain_id) const;
|
||||
|
||||
virtual std::string serialize() const override;
|
||||
|
|
|
|||
Loading…
Reference in a new issue