MidlePayQml 0.0.4
MiddlePay QML module
qunlock_conditions.hpp
1 #pragma once
2 
3 #include <QByteArray>
4 #include <QDataStream>
5 #include <QJsonValue>
6 #include"block/carray.hpp"
7 #include"block/qaddresses.hpp"
8 namespace qiota{
9 namespace qblocks{
11 {
12 public:
15  Unlock_Condition(types typ, const std::shared_ptr<const Address> &address_m=nullptr );
16  template<class from_type>static std::shared_ptr<const Unlock_Condition> from_(from_type& val);
17 
19  static std::shared_ptr<const Unlock_Condition> Storage_Deposit_Return(const std::shared_ptr<const class Address>& return_address_m,const quint64& return_amount_m);
20  static std::shared_ptr<const Unlock_Condition> Timelock(const quint32 &unix_time_m);
21  static std::shared_ptr<const Unlock_Condition> Expiration(const quint32& unix_time_m,const std::shared_ptr<const class Address> &return_address_m);
25 
26  virtual void serialize(QDataStream &out)const;
27  virtual QJsonObject get_Json(void) const;
28 
29  friend inline bool operator<(const Unlock_Condition& a, const Unlock_Condition& b)
30  {
31  return a.type_m<b.type_m;
32  }
33  std::shared_ptr<const class Address> address(void)const{return address_;}
34  types type(void)const{return type_m;}
35 
36 private:
37  const types type_m;
39 
40 };
41 
43 {
44 public:
48 
49 };
50 
51 
53 {
54 public:
55  Storage_Deposit_Return_Unlock_Condition(const std::shared_ptr<const class Address>& return_address_m,const quint64& return_amount_m);
58  void serialize(QDataStream &out)const;
59  QJsonObject get_Json(void) const;
60  quint64 return_amount(void)const{return return_amount_;}
61 
62 private:
63  quint64 return_amount_;
64 
65 };
66 
67 
69 {
70 public:
71  Timelock_Unlock_Condition(const quint32 &unix_time_m);
74  void serialize(QDataStream &out)const;
75  QJsonObject get_Json(void) const;
76  quint32 unix_time(void)const{return unix_time_;}
77 
78 private:
79  quint32 unix_time_;
80 
81 };
82 
83 
85 {
86 public:
87  Expiration_Unlock_Condition(const quint32& unix_time_m,const std::shared_ptr<const class Address> &return_address_m);
90  void serialize(QDataStream &out)const;
91  QJsonObject get_Json(void) const;
92  quint32 unix_time(void)const{return unix_time_;}
93 
94 private:
95  quint32 unix_time_;
96 
97 };
98 
100 {
101 public:
105 
106 };
107 
109 {
110 public:
114 };
116 {
117 public:
121 
122 };
123 };
124 };
Definition: qunlock_conditions.hpp:43
Address_Unlock_Condition(const std::shared_ptr< const class Address > &address_m)
Address_Unlock_Condition(const QJsonValue &val)
Definition: qunlock_conditions.hpp:85
void serialize(QDataStream &out) const
quint32 unix_time(void) const
Definition: qunlock_conditions.hpp:92
Expiration_Unlock_Condition(const QJsonValue &val)
Expiration_Unlock_Condition(const quint32 &unix_time_m, const std::shared_ptr< const class Address > &return_address_m)
Definition: qunlock_conditions.hpp:109
Governor_Address_Unlock_Condition(const std::shared_ptr< const class Address > &address_m)
Governor_Address_Unlock_Condition(const QJsonValue &val)
Definition: qunlock_conditions.hpp:116
Immutable_Alias_Address_Unlock_Condition(const std::shared_ptr< const class Address > &address_m)
Definition: qunlock_conditions.hpp:100
State_Controller_Address_Unlock_Condition(const std::shared_ptr< const class Address > &address_m)
Definition: qunlock_conditions.hpp:53
Storage_Deposit_Return_Unlock_Condition(const std::shared_ptr< const class Address > &return_address_m, const quint64 &return_amount_m)
quint64 return_amount(void) const
Definition: qunlock_conditions.hpp:60
Definition: qunlock_conditions.hpp:69
Timelock_Unlock_Condition(const QJsonValue &val)
void serialize(QDataStream &out) const
quint32 unix_time(void) const
Definition: qunlock_conditions.hpp:76
Timelock_Unlock_Condition(const quint32 &unix_time_m)
Definition: qunlock_conditions.hpp:11
static std::shared_ptr< const Unlock_Condition > Storage_Deposit_Return(const std::shared_ptr< const class Address > &return_address_m, const quint64 &return_amount_m)
friend bool operator<(const Unlock_Condition &a, const Unlock_Condition &b)
Definition: qunlock_conditions.hpp:29
virtual void serialize(QDataStream &out) const
std::shared_ptr< const class Address > address(void) const
Definition: qunlock_conditions.hpp:33
virtual QJsonObject get_Json(void) const
types type(void) const
Definition: qunlock_conditions.hpp:34
static std::shared_ptr< const Unlock_Condition > Expiration(const quint32 &unix_time_m, const std::shared_ptr< const class Address > &return_address_m)
static std::shared_ptr< const Unlock_Condition > Timelock(const quint32 &unix_time_m)
static std::shared_ptr< const Unlock_Condition > from_(from_type &val)
static std::shared_ptr< const Unlock_Condition > State_Controller_Address(const std::shared_ptr< const class Address > &address_m)
static std::shared_ptr< const Unlock_Condition > Immutable_Alias_Address(const std::shared_ptr< const class Address > &address_m)
static std::shared_ptr< const Unlock_Condition > Address(const std::shared_ptr< const class Address > &address_m)
types
Definition: qunlock_conditions.hpp:13
@ Storage_Deposit_Return_typ
Definition: qunlock_conditions.hpp:13
@ Governor_Address_typ
Definition: qunlock_conditions.hpp:14
@ Expiration_typ
Definition: qunlock_conditions.hpp:13
@ Address_typ
Definition: qunlock_conditions.hpp:13
@ State_Controller_Address_typ
Definition: qunlock_conditions.hpp:13
@ Immutable_Alias_Address_typ
Definition: qunlock_conditions.hpp:14
@ Timelock_typ
Definition: qunlock_conditions.hpp:13
static std::shared_ptr< const Unlock_Condition > Governor_Address(const std::shared_ptr< const class Address > &address_m)
Unlock_Condition(types typ, const std::shared_ptr< const Address > &address_m=nullptr)
Definition: qbigint.hpp:7