hdac SDK
SDK for hdac blockchain development
hdacscript.h
1 #ifndef HDACSCRIPT_H
2 #define HDACSCRIPT_H
3 
4 #include <cstddef>
5 #include <cstdint>
6 
7 #define MC_SCR_TYPE_SCRIPTPUBKEY 0
8 #define MC_SCR_TYPE_SCRIPTSIG 1
9 #define MC_SCR_TYPE_SCRIPTSIGRAW 2
10 
11 #define MC_SCR_ASSET_SCRIPT_TYPE_TRANSFER 0x00000001
12 #define MC_SCR_ASSET_SCRIPT_TYPE_FOLLOWON 0x00000002
13 
14 struct mc_Buffer;
15 
16 typedef struct mc_Script
17 {
18  int m_Size;
19  int m_NumElements;
20  int m_CurrentElement;
21  unsigned char* m_lpData;
22  int *m_lpCoord;
23  int m_AllocElements;
24  int m_AllocSize;
25  int m_ScriptType;
26 
27  mc_Script()
28  {
29  Zero();
30  }
31 
32  ~mc_Script()
33  {
34  Destroy();
35  }
36 
37  int Zero();
38  int Destroy();
39  int Resize(size_t bytes,int elements);
40 
41  int SetScript(const unsigned char* src,const size_t bytes,int type);
42  int IsOpReturnScript();
43  int IsDirtyOpReturnScript();
44  int Clear();
45 
46  int GetNumElements();
47  int AddElement();
48  int SetSpecialParamValue(unsigned char param,const unsigned char* param_value,const size_t param_value_size);
49  int SetParamValue(const char *param_name,const size_t param_name_size,const unsigned char* param_value,const size_t param_value_size);
50  size_t GetParamValue(const unsigned char *ptr,size_t total,size_t offset,size_t* param_value_start,size_t *bytes);
51  int SetData(const unsigned char* src,const size_t bytes);
52  const unsigned char* GetData(int element,size_t *bytes);
53 
54  int GetElement();
55  int SetElement(int element);
56 
57  int GetEntity(unsigned char *short_txid);
58  int SetEntity(const unsigned char *short_txid);
59 
60  int GetNewEntityType(uint32_t *type);
61  int SetNewEntityType(const uint32_t type);
62 
63  int GetApproval(uint32_t *approval,uint32_t *timestamp);
64  int SetApproval( uint32_t approval,uint32_t timestamp);
65 
66  int GetNewEntityType(uint32_t *type,int *update,unsigned char* script,int *script_size);
67  int SetNewEntityType(const uint32_t type,const int update,const unsigned char* script,int script_size);
68 
69  int GetItemKey(unsigned char *key,int *key_size);
70  int SetItemKey(const unsigned char* key,int key_size);
71 
72  int GetPermission(uint32_t *type,uint32_t *from,uint32_t *to,uint32_t *timestamp);
73  int SetPermission(uint32_t type,uint32_t from,uint32_t to,uint32_t timestamp);
74 
75  int GetBlockSignature(unsigned char* sig,int *sig_size,uint32_t *hash_type,unsigned char* key,int *key_size);
76  int SetBlockSignature(const unsigned char* sig,int sig_size,uint32_t hash_type,const unsigned char* key,int key_size);
77 
78  int GetAssetGenesis(int64_t *quantity);
79  int SetAssetGenesis(int64_t quantity);
80 
81  int GetAssetDetails(char* name,int* multiple,unsigned char* script,int *script_size);
82  int SetAssetDetails(const char*name,int multiple,const unsigned char* script,int script_size);
83 
84  int GetGeneralDetails(unsigned char* script,int *script_size);
85  int SetGeneralDetails(const unsigned char* script,int script_size);
86 
87  int GetAssetQuantities(mc_Buffer *amounts,uint32_t script_type);
88  int SetAssetQuantities(mc_Buffer *amounts,uint32_t script_type);
89 
90  int GetFullRef(unsigned char *ref,uint32_t *script_type);
91 
92  int GetCachedScript(int offset, int *next_offset, int* vin, unsigned char** script, int *script_size);
93  int SetCachedScript(int offset, int *next_offset, int vin, unsigned char* script, int script_size);
94 
95 } mc_Script;
96 
97 const unsigned char *mc_ParseOpDropOpReturnScript(const unsigned char *src,int size,int *op_drop_offset,int *op_drop_size,int op_drop_count,int *op_return_offset,int *op_return_size);
98 uint32_t mc_FindSpecialParamInDetailsScript(const unsigned char *ptr,uint32_t total,uint32_t param,size_t *bytes);
99 uint32_t mc_FindNamedParamInDetailsScript(const unsigned char *ptr,uint32_t total,const char *param,size_t *bytes);
100 uint32_t mc_GetParamFromDetailsScript(const unsigned char *ptr,uint32_t total,uint32_t offset,uint32_t* param_value_start,size_t *bytes);
101 
102 #endif // HDACSCRIPT_H
Definition: utility.h:10
Definition: hdacscript.h:16