Skip to content

Commit

Permalink
fix(core-database): find by address / public key before username
Browse files Browse the repository at this point in the history
  • Loading branch information
air1one committed Aug 11, 2020
1 parent c2d3f2e commit ddd19cc
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { genesisBlock } from "../../../utils/fixtures/testnet/block-model";
import { WalletsBusinessRepository } from "../../../../packages/core-database/src";
import { DatabaseService } from "../../../../packages/core-database/src/database-service";
import { Wallets } from "../../../../packages/core-state/src";
import { Address } from "../../../../packages/crypto/src/identities";
import { Address, PublicKey } from "../../../../packages/crypto/src/identities";
import { stateStorageStub } from "../__fixtures__/state-storage-stub";

let genesisSenders;
Expand Down Expand Up @@ -358,6 +358,22 @@ describe("Wallet Repository", () => {
it("should be ok with a username", () => {
expectWallet("username");
});

it("should find wallet by address or public key before username", () => {
const address = Address.fromPassphrase("dummy");
const publicKey = PublicKey.fromPassphrase("dummy");
const wallet = new Wallets.Wallet(address);
wallet.publicKey = publicKey;
const walletUsernameAddress = new Wallets.Wallet(Address.fromPassphrase("a different wallet"));
walletUsernameAddress.setAttribute("delegate.username", address);
const walletUsernamePublicKey = new Wallets.Wallet(Address.fromPassphrase("a different wallet"));
walletUsernamePublicKey.setAttribute("delegate.username", publicKey);

walletManager.index([wallet, walletUsernameAddress, walletUsernamePublicKey]);

expect(repository.findById(Database.SearchScope.Wallets, address)).toBe(wallet);
expect(repository.findById(Database.SearchScope.Wallets, publicKey)).toBe(wallet);
});
});

describe("count", () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,14 @@ export class WalletsBusinessRepository implements Database.IWalletsBusinessRepos
switch (scope) {
case Database.SearchScope.Wallets: {
return walletManager.findByIndex(
[State.WalletIndexes.Usernames, State.WalletIndexes.Addresses, State.WalletIndexes.PublicKeys],
[State.WalletIndexes.Addresses, State.WalletIndexes.PublicKeys, State.WalletIndexes.Usernames],
id,
);
}

case Database.SearchScope.Delegates: {
const wallet: State.IWallet | undefined = walletManager.findByIndex(
[State.WalletIndexes.Usernames, State.WalletIndexes.Addresses, State.WalletIndexes.PublicKeys],
[State.WalletIndexes.Addresses, State.WalletIndexes.PublicKeys, State.WalletIndexes.Usernames],
id,
);

Expand Down

0 comments on commit ddd19cc

Please sign in to comment.