Skip to content

Commit

Permalink
wallet: convert waddrs to not be pointers
Browse files Browse the repository at this point in the history
  • Loading branch information
xanimo committed Dec 8, 2023
1 parent 164fff0 commit 6494363
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions src/wallet.c
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ dogecoin_wallet* dogecoin_wallet_init(const dogecoin_chainparams* chain, const c
}
}

dogecoin_wallet_addr* waddr;
dogecoin_wallet_addr waddr;

if (address != NULL) {
char delim[] = " ";
Expand All @@ -436,27 +436,24 @@ dogecoin_wallet* dogecoin_wallet_init(const dogecoin_chainparams* chain, const c
char *ptr;
while((ptr = strtok_r(address_copy, delim, &address_copy)))
{
waddr = dogecoin_wallet_addr_new();
if (!waddr->ignore) {
if (!dogecoin_p2pkh_address_to_wallet_pubkeyhash(ptr, waddr, wallet)) {
if (!&waddr.ignore) {
if (!dogecoin_p2pkh_address_to_wallet_pubkeyhash(ptr, &waddr, wallet)) {
dogecoin_free(address_copy);
return NULL;
}
}
if (wallet->waddr_vector->len == 0) dogecoin_wallet_addr_free(waddr);
}
}
#ifdef USE_UNISTRING
else if (wallet->waddr_vector->len == 0) {
int i=0;
for(;i<20;i++) {
waddr = dogecoin_wallet_next_bip44_addr(wallet);
if (wallet->waddr_vector->len == 0) dogecoin_wallet_addr_free(waddr);
memcpy_safe(&waddr, dogecoin_wallet_next_bip44_addr(wallet), sizeof(dogecoin_wallet_addr));
}
}
#else
else if (wallet->waddr_vector->len == 0) {
waddr = dogecoin_wallet_next_addr(wallet);
if (wallet->waddr_vector->len == 0) dogecoin_wallet_addr_free(waddr);
memcpy_safe(&waddr, dogecoin_wallet_next_addr(wallet), sizeof(dogecoin_wallet_addr));
}
#endif
return wallet;
Expand Down Expand Up @@ -583,8 +580,9 @@ void dogecoin_wallet_scrape_utxos(dogecoin_wallet* wallet, dogecoin_wtx* wtx) {
if (memcmp(prevout_hash_bytes, utxo->txid, 32)==0 && (int)tx_in->prevout.n == utxo->vout) {
size_t m = 0, n = 0;
for (; m < wallet->spends->len; m++) {
dogecoin_utxo* spent_utxo = vector_idx(wallet->spends, m);
if (memcmp(spent_utxo->txid, utxo->txid, 32) == 0 && spent_utxo->vout == utxo->vout) {
dogecoin_utxo spent_utxo;
memcpy_safe(&spent_utxo, vector_idx(wallet->spends, m), sizeof(dogecoin_utxo));
if (memcmp((const uint8_t*)&spent_utxo.txid, (const uint8_t*)utxo->txid, 32) == 0 && spent_utxo.vout == utxo->vout) {
n++;
}
}
Expand Down

0 comments on commit 6494363

Please sign in to comment.