MidlePayQml 0.0.4
MiddlePay QML module
qaddresses.hpp
1 #pragma once
2 
3 
4 #include"block/carray.hpp"
5 #include<QJsonObject>
6 namespace qiota{
7 namespace qblocks{
8 
9 class Address
10 {
11 public:
12  enum types : quint8 { NFT_typ=16, Alias_typ=8, Ed25519_typ=0};
13 
14  Address(types typ, c_array addrhash_m );
16  template<class from_type> static std::shared_ptr<const Address> from_(from_type& val);
18 
19 
20  static std::shared_ptr<const Address> NFT(const c_array& nft_id_m);
21  static std::shared_ptr<const Address> Alias(const c_array& alias_id_m);
22  static std::shared_ptr<const Address> Ed25519(const c_array& pubkeyhash_m);
23 
24 
25  virtual void serialize(QDataStream &out)const;
26  virtual QJsonObject get_Json(void) const;
27  c_array addrhash(void)const{return addrhash_;}
28  c_array addr(void)const{
29  c_array addr;
31  buffer.setByteOrder(QDataStream::LittleEndian);
32  serialize(buffer);
33  return addr;}
34 
35  types type(void)const{return type_m;}
36 
37 private:
38  const types type_m;
39  c_array addrhash_;
40 
41 };
42 
43 class NFT_Address : public Address
44 {
45 public:
46  NFT_Address(const c_array& nft_id_m);
47  NFT_Address(const QJsonValue& val);
49 
50  QJsonObject get_Json(void) const;
51 
52 };
53 class Alias_Address : public Address
54 {
55 public:
56  Alias_Address(const c_array& alias_id_m);
59 
60  QJsonObject get_Json(void) const;
61 
62 };
63 
64 class Ed25519_Address : public Address
65 {
66 public:
67  Ed25519_Address(const c_array& pubkeyhash_m);
70 
71  QJsonObject get_Json(void) const;
72 
73 };
74 
75 };
76 };
Definition: qaddresses.hpp:10
Address(types typ, QDataStream &in)
static std::shared_ptr< const Address > Ed25519(const c_array &pubkeyhash_m)
virtual QJsonObject get_Json(void) const
static std::shared_ptr< const Address > NFT(const c_array &nft_id_m)
Address(types typ, c_array addrhash_m)
virtual void serialize(QDataStream &out) const
static std::shared_ptr< const Address > from_array(QByteArray &val)
static std::shared_ptr< const Address > from_(from_type &val)
static std::shared_ptr< const Address > Alias(const c_array &alias_id_m)
c_array addr(void) const
Definition: qaddresses.hpp:28
c_array addrhash(void) const
Definition: qaddresses.hpp:27
types
Definition: qaddresses.hpp:12
@ Alias_typ
Definition: qaddresses.hpp:12
@ Ed25519_typ
Definition: qaddresses.hpp:12
@ NFT_typ
Definition: qaddresses.hpp:12
types type(void) const
Definition: qaddresses.hpp:35
Definition: qaddresses.hpp:54
QJsonObject get_Json(void) const
Alias_Address(const QJsonValue &val)
Alias_Address(QDataStream &in)
Alias_Address(const c_array &alias_id_m)
Definition: qaddresses.hpp:65
Ed25519_Address(QDataStream &in)
Ed25519_Address(const QJsonValue &val)
Ed25519_Address(const c_array &pubkeyhash_m)
QJsonObject get_Json(void) const
Definition: qaddresses.hpp:44
NFT_Address(const c_array &nft_id_m)
NFT_Address(QDataStream &in)
NFT_Address(const QJsonValue &val)
QJsonObject get_Json(void) const
Byte Array that takes care of storing the objects in serialized form.
Definition: carray.hpp:28
Definition: qbigint.hpp:7