From db928a431f4d4ff50c1bea1a1a1a5bd2a6f22738 Mon Sep 17 00:00:00 2001 From: jl777 Date: Wed, 7 Mar 2018 14:06:41 +0200 Subject: [PATCH] Calcaddrhash for SMART --- iguana/exchanges/LP_bitcoin.c | 7 ++++++- iguana/exchanges/LP_include.h | 1 + iguana/keccak.c | 9 ++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/iguana/exchanges/LP_bitcoin.c b/iguana/exchanges/LP_bitcoin.c index de82fd670..139051a72 100644 --- a/iguana/exchanges/LP_bitcoin.c +++ b/iguana/exchanges/LP_bitcoin.c @@ -2041,8 +2041,13 @@ bits256 bits256_calctxid(char *symbol,uint8_t *serialized,int32_t len) bits256 bits256_calcaddrhash(char *symbol,uint8_t *serialized,int32_t len) { bits256 hash; + memset(hash.bytes,0,sizeof(hash)); if ( strcmp(symbol,"GRS") != 0 ) - hash = bits256_doublesha256(0,serialized,len); + { + if ( strcmp(symbol,"SMART") != 0 ) + hash = bits256_doublesha256(0,serialized,len); + else HashKeccak(hash.bytes,serialized,len); + } else { HashGroestl(hash.bytes,serialized,len); diff --git a/iguana/exchanges/LP_include.h b/iguana/exchanges/LP_include.h index 92dd78727..28c1244f5 100644 --- a/iguana/exchanges/LP_include.h +++ b/iguana/exchanges/LP_include.h @@ -522,6 +522,7 @@ int32_t iguana_signrawtransaction(void *ctx,char *symbol,uint8_t wiftaddr,uint8_ //void LP_butxo_swapfields_set(struct LP_utxoinfo *butxo); struct LP_address_utxo *LP_address_utxofind(struct iguana_info *coin,char *coinaddr,bits256 txid,int32_t vout); int64_t LP_myzcredits(); +void HashKeccak(uint8_t *hash,void *data,size_t len); void test_validate(struct iguana_info *coin,char *signedtx); void LP_instantdex_depositadd(char *coinaddr,bits256 txid); int64_t LP_instantdex_creditcalc(struct iguana_info *coin,int32_t dispflag,bits256 txid,char *refaddr,char *origcoinaddr); diff --git a/iguana/keccak.c b/iguana/keccak.c index 1f31fe0b3..302f220a6 100644 --- a/iguana/keccak.c +++ b/iguana/keccak.c @@ -1822,7 +1822,14 @@ sph_keccak512_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst) keccak_close64(cc, ub, n, dst); } - +void HashKeccak(uint8_t *hash,void *data,size_t len) +{ + sph_keccak256_context ctx_keccak; + sph_keccak256_init(&ctx_keccak); + sph_keccak256(&ctx_keccak,data,len); + sph_keccak256_close(&ctx_keccak,(void *)hash); +} + #ifdef __cplusplus } #endif