Skip to content

Commit

Permalink
wallet: make dogecoin_wallet_next_addr void
Browse files Browse the repository at this point in the history
  • Loading branch information
xanimo committed Jun 27, 2023
1 parent 9e92f85 commit 3c14ae0
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 10 deletions.
2 changes: 1 addition & 1 deletion include/dogecoin/wallet.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ LIBDOGECOIN_API dogecoin_bool dogecoin_wallet_flush(dogecoin_wallet* wallet);
LIBDOGECOIN_API void dogecoin_wallet_set_master_key_copy(dogecoin_wallet* wallet, const dogecoin_hdnode* master_xpub);

/** derives the next child hdnode and derives an address (memory is owned by the wallet) */
LIBDOGECOIN_API dogecoin_wallet_addr* dogecoin_wallet_next_addr(dogecoin_wallet* wallet);
LIBDOGECOIN_API void dogecoin_wallet_next_addr(dogecoin_wallet_addr* waddr, dogecoin_wallet* wallet);
LIBDOGECOIN_API dogecoin_wallet_addr* dogecoin_wallet_next_bip44_addr(dogecoin_wallet* wallet);
LIBDOGECOIN_API dogecoin_bool dogecoin_p2pkh_address_to_wallet_pubkeyhash(const char* address_in, dogecoin_wallet_addr* addr, dogecoin_wallet* wallet);

Expand Down
4 changes: 2 additions & 2 deletions src/cli/spvnode.c
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ dogecoin_wallet* dogecoin_wallet_init(const dogecoin_chainparams* chain, const c
// TODO
}

dogecoin_wallet_addr* waddr;
dogecoin_wallet_addr* waddr = dogecoin_calloc(1, sizeof(*waddr));

if (address != NULL) {
char delim[] = " ";
Expand Down Expand Up @@ -347,7 +347,7 @@ dogecoin_wallet* dogecoin_wallet_init(const dogecoin_chainparams* chain, const c
}
#else
else if (wallet->waddr_vector->len == 0) {
waddr = dogecoin_wallet_next_addr(wallet);
dogecoin_wallet_next_addr(waddr, wallet);
}
#endif

Expand Down
7 changes: 3 additions & 4 deletions src/wallet.c
Original file line number Diff line number Diff line change
Expand Up @@ -670,13 +670,12 @@ void dogecoin_wallet_set_master_key_copy(dogecoin_wallet* wallet, const dogecoin
dogecoin_file_commit(wallet->dbfile);
}

dogecoin_wallet_addr* dogecoin_wallet_next_addr(dogecoin_wallet* wallet)
void dogecoin_wallet_next_addr(dogecoin_wallet_addr *waddr, dogecoin_wallet* wallet)
{
if (!wallet || !wallet->masterkey)
return NULL;
return;

//for now, only m/k is possible
dogecoin_wallet_addr *waddr = dogecoin_wallet_addr_new();
dogecoin_hdnode *hdnode = dogecoin_hdnode_copy(wallet->masterkey);
dogecoin_hdnode_public_ckd(hdnode, wallet->next_childindex);
dogecoin_hdnode_get_hash160(hdnode, waddr->pubkeyhash);
Expand Down Expand Up @@ -732,7 +731,7 @@ dogecoin_wallet_addr* dogecoin_wallet_next_addr(dogecoin_wallet* wallet)
//increase the in-memory counter (cache)
wallet->next_childindex++;

return waddr;
return;
}

dogecoin_wallet_addr* dogecoin_wallet_next_bip44_addr(dogecoin_wallet* wallet)
Expand Down
8 changes: 5 additions & 3 deletions test/wallet_tests.c
Original file line number Diff line number Diff line change
Expand Up @@ -202,17 +202,19 @@ void test_wallet_basics()
u_assert_int_eq(suc, 1);
dogecoin_wallet_set_master_key_copy(wallet, &node);

dogecoin_wallet_addr *wallet_addr = dogecoin_wallet_next_addr(wallet);
dogecoin_wallet_addr *wallet_addr = dogecoin_calloc(1, sizeof(*wallet_addr));
dogecoin_wallet_next_addr(wallet_addr, wallet);
u_assert_int_eq(wallet_addr->childindex, 0);

dogecoin_wallet_new(wallet, &dogecoin_chainparams_main);
u_assert_int_eq(dogecoin_wallet_load(wallet, wallettmpfile, &error, &created), true);
dogecoin_wallet_addr *wallet_addr2 = dogecoin_wallet_next_addr(wallet);
dogecoin_wallet_addr *wallet_addr2 = dogecoin_calloc(1, sizeof(*wallet_addr2));
dogecoin_wallet_next_addr(wallet_addr2, wallet);
u_assert_int_eq(wallet_addr2->childindex, 1);

//force to regenerate child 1
wallet->next_childindex = 1;
wallet_addr = dogecoin_wallet_next_addr(wallet);
dogecoin_wallet_next_addr(wallet_addr, wallet);

//now it should be equal
u_assert_mem_eq(wallet_addr->pubkeyhash, wallet_addr2->pubkeyhash, sizeof(uint160));
Expand Down

0 comments on commit 3c14ae0

Please sign in to comment.