test
This commit is contained in:
@@ -51,6 +51,8 @@ struct komodo_event
|
||||
uint8_t space[];
|
||||
} PACKED;
|
||||
|
||||
struct komodo_event **Komodo_events; int32_t Komodo_numevents;
|
||||
|
||||
struct komodo_event *komodo_eventadd(int32_t height,char *symbol,uint8_t type,uint8_t *data,uint16_t datalen)
|
||||
{
|
||||
struct komodo_event *ep; uint16_t len = (uint16_t)(sizeof(*ep) + datalen);
|
||||
@@ -61,10 +63,12 @@ struct komodo_event *komodo_eventadd(int32_t height,char *symbol,uint8_t type,ui
|
||||
strcpy(ep->symbol,symbol);
|
||||
if ( datalen != 0 )
|
||||
memcpy(ep->space,data,datalen);
|
||||
Komodo_events = realloc(Komodo_events,(1 + Komodo_numevents) * sizeof(*Komodo_events));
|
||||
Komodo_events[Komodo_numevents++] = ep;
|
||||
return(ep);
|
||||
}
|
||||
|
||||
void komodo_eventadd_notarized(char *symbol,int32_t height,char *dest,bits256 blockhash,bits256 desttxid,int32_t notarizedheight)
|
||||
void komodo_eventadd_notarized(struct komodo_state *sp,char *symbol,int32_t height,char *dest,uint256 notarized_hash,uint256 notarized_desttxid,int32_t notarizedheight)
|
||||
{
|
||||
struct komodo_event_notarized N;
|
||||
memset(&N,0,sizeof(N));
|
||||
@@ -73,18 +77,22 @@ void komodo_eventadd_notarized(char *symbol,int32_t height,char *dest,bits256 bl
|
||||
N.notarizedheight = notarizedheight;
|
||||
strcpy(N.dest,dest);
|
||||
komodo_eventadd(height,symbol,KOMODO_EVENT_NOTARIZED,(uint8_t *)&N,sizeof(N));
|
||||
if ( sp != 0 )
|
||||
komodo_notarized_update(sp,height,notarizedheight,notarized_hash,notarized_desttxid);
|
||||
}
|
||||
|
||||
void komodo_eventadd_pubkeys(char *symbol,int32_t height,uint8_t num,uint8_t pubkeys[64][33])
|
||||
void komodo_eventadd_pubkeys(struct komodo_state *sp,char *symbol,int32_t height,uint8_t num,uint8_t pubkeys[64][33])
|
||||
{
|
||||
struct komodo_event_pubkeys P;
|
||||
memset(&P,0,sizeof(P));
|
||||
P.num = num;
|
||||
memcpy(P.pubkeys,pubkeys,33 * num);
|
||||
komodo_eventadd(height,symbol,KOMODO_EVENT_RATIFY,(uint8_t *)&P,(int32_t)(sizeof(P.num) + 33 * num));
|
||||
if ( sp != 0 )
|
||||
komodo_notarysinit(height,pubkeys,num);
|
||||
}
|
||||
|
||||
void komodo_eventadd_utxo(char *symbol,int32_t height,uint8_t notaryid,bits256 txid,uint64_t voutmask,uint8_t numvouts)
|
||||
void komodo_eventadd_utxo(struct komodo_state *sp,char *symbol,int32_t height,uint8_t notaryid,bits256 txid,uint64_t voutmask,uint8_t numvouts)
|
||||
{
|
||||
struct komodo_event_utxo U;
|
||||
memset(&U,0,sizeof(U));
|
||||
@@ -92,23 +100,29 @@ void komodo_eventadd_utxo(char *symbol,int32_t height,uint8_t notaryid,bits256 t
|
||||
U.voutmask = voutmask;
|
||||
U.numvouts = numvouts;
|
||||
komodo_eventadd(height,symbol,KOMODO_EVENT_UTXO,(uint8_t *)&U,sizeof(U));
|
||||
if ( sp != 0 )
|
||||
komodo_nutxoadd(height,notaryid,txid,voutmask,numvouts);
|
||||
}
|
||||
|
||||
void komodo_eventadd_pricefeed(char *symbol,int32_t height,uint32_t *prices,uint8_t num)
|
||||
void komodo_eventadd_pricefeed(struct komodo_state *sp,char *symbol,int32_t height,uint32_t *prices,uint8_t num)
|
||||
{
|
||||
struct komodo_event_pricefeed F;
|
||||
memset(&F,0,sizeof(F));
|
||||
F.num = num;
|
||||
memcpy(F.prices,prices,sizeof(*F.prices) * num);
|
||||
komodo_eventadd(height,symbol,KOMODO_EVENT_PRICEFEED,(uint8_t *)&F,(int32_t)(sizeof(F.num) + sizeof(*F.prices) * num));
|
||||
if ( sp != 0 )
|
||||
komodo_pvals(height,prices,num);
|
||||
}
|
||||
|
||||
void komodo_eventadd_kmdheight(char *symbol,int32_t height,int32_t kmdheight)
|
||||
void komodo_eventadd_kmdheight(struct komodo_state *sp,char *symbol,int32_t height,int32_t kmdheight)
|
||||
{
|
||||
komodo_eventadd(height,symbol,KOMODO_EVENT_KMDHEIGHT,(uint8_t *)&kmdheight,sizeof(kmdheight));
|
||||
if ( sp != 0 )
|
||||
komodo_setkmdheight(kmdheight);
|
||||
}
|
||||
|
||||
void komodo_eventadd_opreturn(char *symbol,int32_t height,uint8_t type,bits256 txid,uint64_t value,uint16_t vout,uint8_t *buf,uint16_t opretlen)
|
||||
void komodo_eventadd_opreturn(struct komodo_state *sp,char *symbol,int32_t height,bits256 txid,uint64_t value,uint16_t vout,uint8_t *buf,uint16_t opretlen)
|
||||
{
|
||||
struct komodo_event_opreturn O; uint8_t opret[10000];
|
||||
memset(&O,0,sizeof(O));
|
||||
@@ -118,32 +132,62 @@ void komodo_eventadd_opreturn(char *symbol,int32_t height,uint8_t type,bits256 t
|
||||
memcpy(opret,&O,sizeof(O));
|
||||
memcpy(&opret[sizeof(O)],buf,opretlen);
|
||||
O.oplen = (int32_t)(opretlen + sizeof(O));
|
||||
komodo_eventadd(height,symbol,type,opret,O.oplen);
|
||||
komodo_eventadd(height,symbol,KOMODO_EVENT_OPRETURN,opret,O.oplen);
|
||||
if ( sp != 0 )
|
||||
komodo_opreturn(height,value,buf,opretlen,txid,vout);
|
||||
}
|
||||
|
||||
void komodo_eventadd_deposit(char *symbol,int32_t height,uint64_t komodoshis,char *fiat,uint64_t fiatoshis,uint8_t rmd160[20],bits256 kmdtxid,uint16_t kmdvout,uint64_t price)
|
||||
void komodo_event_undo(struct komodo_event *ep)
|
||||
{
|
||||
switch ( ep->type )
|
||||
{
|
||||
case KOMODO_EVENT_RATIFY:
|
||||
case KOMODO_EVENT_NOTARIZED:
|
||||
case KOMODO_EVENT_UTXO:
|
||||
case KOMODO_EVENT_KMDHEIGHT:
|
||||
case KOMODO_EVENT_PRICEFEED:
|
||||
case KOMODO_EVENT_OPRETURN:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void komodo_event_rewind(int32_t height)
|
||||
{
|
||||
while ( Komodo_numevents > 0 )
|
||||
{
|
||||
if ( (ep= Komodo_events[Komodo_numevents-1]) != 0 )
|
||||
{
|
||||
if ( ep->height < height )
|
||||
break;
|
||||
komodo_event_undo(ep);
|
||||
Komodo_numevents--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*void komodo_eventadd_deposit(int32_t actionflag,char *symbol,int32_t height,uint64_t komodoshis,char *fiat,uint64_t fiatoshis,uint8_t rmd160[20],bits256 kmdtxid,uint16_t kmdvout,uint64_t price)
|
||||
{
|
||||
uint8_t opret[512]; uint16_t opretlen;
|
||||
komodo_eventadd_opreturn(symbol,height,KOMODO_OPRETURN_DEPOSIT,kmdtxid,komodoshis,kmdvout,opret,opretlen);
|
||||
}
|
||||
|
||||
void komodo_eventadd_issued(char *symbol,int32_t height,int32_t fiatheight,bits256 fiattxid,uint16_t fiatvout,bits256 kmdtxid,uint16_t kmdvout,uint64_t fiatoshis)
|
||||
void komodo_eventadd_issued(int32_t actionflag,char *symbol,int32_t height,int32_t fiatheight,bits256 fiattxid,uint16_t fiatvout,bits256 kmdtxid,uint16_t kmdvout,uint64_t fiatoshis)
|
||||
{
|
||||
uint8_t opret[512]; uint16_t opretlen;
|
||||
komodo_eventadd_opreturn(symbol,height,KOMODO_OPRETURN_ISSUED,fiattxid,fiatoshis,fiatvout,opret,opretlen);
|
||||
}
|
||||
|
||||
void komodo_eventadd_withdraw(char *symbol,int32_t height,uint64_t komodoshis,char *fiat,uint64_t fiatoshis,uint8_t rmd160[20],bits256 fiattxid,int32_t fiatvout,uint64_t price)
|
||||
void komodo_eventadd_withdraw(int32_t actionflag,char *symbol,int32_t height,uint64_t komodoshis,char *fiat,uint64_t fiatoshis,uint8_t rmd160[20],bits256 fiattxid,int32_t fiatvout,uint64_t price)
|
||||
{
|
||||
uint8_t opret[512]; uint16_t opretlen;
|
||||
komodo_eventadd_opreturn(symbol,height,KOMODO_OPRETURN_WITHDRAW,fiattxid,fiatoshis,fiatvout,opret,opretlen);
|
||||
}
|
||||
|
||||
void komodo_eventadd_redeemed(char *symbol,int32_t height,bits256 kmdtxid,uint16_t kmdvout,int32_t fiatheight,bits256 fiattxid,uint16_t fiatvout,uint64_t komodoshis)
|
||||
void komodo_eventadd_redeemed(int32_t actionflag,char *symbol,int32_t height,bits256 kmdtxid,uint16_t kmdvout,int32_t fiatheight,bits256 fiattxid,uint16_t fiatvout,uint64_t komodoshis)
|
||||
{
|
||||
uint8_t opret[512]; uint16_t opretlen;
|
||||
komodo_eventadd_opreturn(symbol,height,KOMODO_OPRETURN_REDEEMED,kmdtxid,komodoshis,kmdvout,opret,opretlen);
|
||||
}
|
||||
}*/
|
||||
|
||||
// process events
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user