jl777 7 years ago
parent
commit
50eb5c1304
  1. 3
      iguana/exchanges/LP_include.h
  2. 12
      iguana/exchanges/LP_nativeDEX.c
  3. 8
      iguana/segwit_addr.c

3
iguana/exchanges/LP_include.h

@ -559,8 +559,7 @@ int64_t LP_outpoint_amount(char *symbol,bits256 txid,int32_t vout);
void LP_listunspent_query(char *symbol,char *coinaddr);
int32_t bitcoin_priv2wif(uint8_t wiftaddr,char *wifstr,bits256 privkey,uint8_t addrtype);
int segwit_addr_encode(char *output,const char *hrp,int ver,const uint8_t *prog,size_t prog_len);
int segwit_addr_decode(int *ver,uint8_t *prog,size_t *prog_len,const char *hrp,const char *addr);
int bech32_convert_bits(uint8_t *out,size_t *outlen,int outbits,const uint8_t *in,size_t inlen,int inbits,int pad);
int bech32_decode(char *hrp,uint8_t *data,size_t *data_len,const char *input);
int bech32_encode(char *output,const char *hrp,const uint8_t *data,size_t data_len);

12
iguana/exchanges/LP_nativeDEX.c

@ -735,9 +735,9 @@ int my_strncasecmp(const char *s1,const char *s2,size_t n)
void bech32_tests()
{
//char *test = "an83characterlonghumanreadablepartthatcontainsthenumber1andtheexcludedcharactersbio1tt5tgs";
//char *test = "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a";
char *test = "prefix:x64nx6hz";
uint8_t data[82],rmd160[20],addrtype; char rebuild[92],hrp[84]; size_t data_len; int32_t i;
char *test = "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a";
//char *test = "prefix:x64nx6hz";
uint8_t data[82],data2[64],rmd160[20],addrtype; char rebuild[92],hrp[84]; size_t data_len,data_len2; int32_t i;
if ( bech32_decode(hrp,data,&data_len,test) == 0 )
{
printf("bech32_decode fails: '%s'\n",test);
@ -752,7 +752,11 @@ void bech32_tests()
printf("%02x",rmd160[i]);
printf("\n");
}
if ( bech32_encode(rebuild,hrp,data,data_len) == 0 )
data_len2 = 0;
data2[0] = 0;
bech32_convert_bits(data2 + 1,&data_len2,5,data,data_len,8,1);
data_len++;
if ( bech32_encode(rebuild,hrp,data2,data_len2) == 0 )
{
for (i=0; i<data_len; i++)
printf("%02x",data[i]);

8
iguana/segwit_addr.c

@ -175,11 +175,11 @@ int bech32_decode(char *hrp,uint8_t *data,size_t *data_len,const char *input)
return 0;
}
printf("checksum chk.%llx lower.%d upper.%d inputlen.%d\n",(long long)chk,have_lower,have_upper,(int32_t)input_len);
return(1);
return chk == 1;
}
static int convert_bits(uint8_t* out, size_t* outlen, int outbits, const uint8_t* in, size_t inlen, int inbits, int pad) {
int bech32_convert_bits(uint8_t *out,size_t *outlen,int outbits,const uint8_t *in,size_t inlen,int inbits,int pad)
{
uint32_t val = 0;
int bits = 0;
uint32_t maxv = (((uint32_t)1) << outbits) - 1;
@ -201,7 +201,7 @@ static int convert_bits(uint8_t* out, size_t* outlen, int outbits, const uint8_t
return 1;
}
int segwit_addr_encode(char *output, const char *hrp, int witver, const uint8_t *witprog, size_t witprog_len) {
/*int segwit_addr_encode(char *output, const char *hrp, int witver, const uint8_t *witprog, size_t witprog_len) {
uint8_t data[65];
size_t datalen = 0;
if (witver > 16) return 0;
@ -227,4 +227,4 @@ int segwit_addr_decode(int* witver, uint8_t* witdata, size_t* witdata_len, const
if (data[0] == 0 && *witdata_len != 20 && *witdata_len != 32) return 0;
*witver = data[0];
return 1;
}
}*/

Loading…
Cancel
Save