]> Git Repo - VerusCoin.git/blobdiff - src/komodo_structs.h
MoMoM code complete
[VerusCoin.git] / src / komodo_structs.h
index f1fc81918e9bd204917144df8dc2c12bcc3a63a7..32a6309500e9798ac077c651b08c8e2e6aba3e2d 100644 (file)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright © 2014-2016 The SuperNET Developers.                             *
+ * Copyright © 2014-2018 The SuperNET Developers.                             *
  *                                                                            *
  * See the AUTHORS, DEVELOPER-AGREEMENT and LICENSE files at                  *
  * the top-level directory of this distribution for the individual copyright  *
  *                                                                            *
  ******************************************************************************/
 
+#include "komodo_defs.h"
+
 #include "uthash.h"
 #include "utlist.h"
 
-/*#ifdef WIN32
+/*#ifdef _WIN32
 #define PACKED
 #else
 #define PACKED __attribute__((packed))
 #endif*/
 
+#ifndef KOMODO_STRUCTS_H
+#define KOMODO_STRUCTS_H
+
 #define GENESIS_NBITS 0x1f00ffff
 #define KOMODO_MINRATIFY ((height < 90000) ? 7 : 11)
-#define KOMODO_MAXBLOCKS 5000000
+#define KOMODO_NOTARIES_HARDCODED 180000 // DONT CHANGE
+#define KOMODO_MAXBLOCKS 250000 // DONT CHANGE
 
 #define KOMODO_EVENT_RATIFY 'P'
 #define KOMODO_EVENT_NOTARIZED 'N'
 #define KOMODO_OPRETURN_WITHDRAW 'W' // assetchain
 #define KOMODO_OPRETURN_REDEEMED 'X'
 
-struct komodo_event_notarized { uint256 blockhash,desttxid; int32_t notarizedheight; char dest[16]; };
+#define KOMODO_KVPROTECTED 1
+#define KOMODO_KVBINARY 2
+#define KOMODO_KVDURATION 1440
+#define KOMODO_ASSETCHAIN_MAXLEN 65
+
+union _bits256 { uint8_t bytes[32]; uint16_t ushorts[16]; uint32_t uints[8]; uint64_t ulongs[4]; uint64_t txid; };
+typedef union _bits256 bits256;
+
+union _bits320 { uint8_t bytes[40]; uint16_t ushorts[20]; uint32_t uints[10]; uint64_t ulongs[5]; uint64_t txid; };
+typedef union _bits320 bits320;
+
+struct komodo_kv { UT_hash_handle hh; bits256 pubkey; uint8_t *key,*value; int32_t height; uint32_t flags; uint16_t keylen,valuesize; };
+
+struct komodo_event_notarized { uint256 blockhash,desttxid,MoM; int32_t notarizedheight,MoMdepth; char dest[16]; };
 struct komodo_event_pubkeys { uint8_t num; uint8_t pubkeys[64][33]; };
 struct komodo_event_opreturn { uint256 txid; uint64_t value; uint16_t vout,oplen; uint8_t opret[]; };
 struct komodo_event_pricefeed { uint8_t num; uint32_t prices[35]; };
@@ -48,7 +67,7 @@ struct komodo_event
     uint16_t len;
     int32_t height;
     uint8_t type,reorged;
-    char symbol[16];
+    char symbol[KOMODO_ASSETCHAIN_MAXLEN];
     uint8_t space[];
 };
 
@@ -59,20 +78,49 @@ struct pax_transaction
     uint64_t komodoshis,fiatoshis,validated;
     int32_t marked,height,otherheight,approved,didstats,ready;
     uint16_t vout;
-    char symbol[16],source[16],coinaddr[64]; uint8_t rmd160[20],type,buf[35];
+    char symbol[KOMODO_ASSETCHAIN_MAXLEN],source[KOMODO_ASSETCHAIN_MAXLEN],coinaddr[64]; uint8_t rmd160[20],type,buf[35];
 };
 
 struct knotary_entry { UT_hash_handle hh; uint8_t pubkey[33],notaryid; };
 struct knotaries_entry { int32_t height,numnotaries; struct knotary_entry *Notaries; };
-struct notarized_checkpoint { uint256 notarized_hash,notarized_desttxid; int32_t nHeight,notarized_height; };
+struct notarized_checkpoint
+{
+    uint256 notarized_hash,notarized_desttxid,MoM,MoMoM;
+    int32_t nHeight,notarized_height,MoMdepth,MoMoMdepth,MoMoMoffset,kmdstarti,kmdendi;
+};
+
+struct komodo_ccdataMoM
+{
+    uint256 MoM;
+    int32_t MoMdepth,notarized_height,height,txi;
+};
+
+struct komodo_ccdatapair { int32_t notarization_height; uint32_t MoMoMoffset; };
+
+struct komodo_ccdataMoMoM
+{
+    uint256 MoMoM;
+    int32_t kmdstarti,kmdendi,MoMoMdepth,numpairs,len;
+    struct komodo_ccdatapair *pairs;
+};
+
+struct komodo_ccdata
+{
+    struct komodo_ccdata *next,*prev;
+    struct komodo_ccdataMoM MoMdata;
+    uint32_t CCid,len;
+    char symbol[65];
+};
 
 struct komodo_state
 {
-    uint256 NOTARIZED_HASH,NOTARIZED_DESTTXID;
-    int32_t SAVEDHEIGHT,CURRENT_HEIGHT,NOTARIZED_HEIGHT;
+    uint256 NOTARIZED_HASH,NOTARIZED_DESTTXID,MoM;
+    int32_t SAVEDHEIGHT,CURRENT_HEIGHT,NOTARIZED_HEIGHT,MoMdepth;
     uint32_t SAVEDTIMESTAMP;
     uint64_t deposited,issued,withdrawn,approved,redeemed,shorted;
-    struct notarized_checkpoint *NPOINTS; int32_t NUM_NPOINTS;
+    struct notarized_checkpoint *NPOINTS; int32_t NUM_NPOINTS,last_NPOINTSi;
     struct komodo_event **Komodo_events; int32_t Komodo_numevents;
     uint32_t RTbufs[64][3]; uint64_t RTmask;
 };
+
+#endif /* KOMODO_STRUCTS_H */
This page took 0.024789 seconds and 4 git commands to generate.