Skip to content

Commit

Permalink
feat: updated wallet-db
Browse files Browse the repository at this point in the history
Signed-off-by: theanmolsharma <anmolsharma0234@gmail.com>
  • Loading branch information
theanmolsharma committed Jan 6, 2024
1 parent 259e551 commit 442ca78
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 1 deletion.
12 changes: 12 additions & 0 deletions src/wallet/db/db.interface.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,16 @@
export type DbInterface = {
open(): Promise<void>;
close(): Promise<void>;
getStatus(): string;
getVersion(): Promise<number>;
setVersion(version: number): Promise<void>;
getSeed(): Promise<string>;
setSeed(seed: string): Promise<void>;
saveAddress(address: string, path: string): Promise<void>;
getAddress(address: string): Promise<string>;
hasAddress(address: string): Promise<boolean>;
getReceiveDepth(): Promise<number>;
setReceiveDepth(depth: number): Promise<void>;
getChangeDepth(): Promise<number>;
setChangeDepth(depth: number): Promise<void>;
};
38 changes: 37 additions & 1 deletion src/wallet/db/level/db.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,42 @@ export class WalletDB implements DbInterface {
}

public async setVersion(version: number): Promise<void> {
this.db.put(wdb.V, version.toString());
await this.db.put(wdb.V, version.toString());
}

public async getSeed(): Promise<string> {
return await this.db.get(wdb.M);
}

public async setSeed(set: string): Promise<void> {
await this.db.put(wdb.M, set);
}

public async saveAddress(address: string, path: string): Promise<void> {
await this.db.sublevel(wdb.A).put(address, path);
}

public async getAddress(address: string): Promise<string> {
return await this.db.sublevel(wdb.A).get(address);
}

async hasAddress(address: string): Promise<boolean> {
return (await this.db.sublevel(wdb.A).get(address)) !== undefined;
}

async getReceiveDepth(): Promise<number> {
return parseInt(await this.db.sublevel(wdb.A).get('receiveDepth'));
}

async setReceiveDepth(depth: number): Promise<void> {
await this.db.sublevel(wdb.A).put('receiveDepth', depth.toString());
}

async getChangeDepth(): Promise<number> {
return parseInt(await this.db.sublevel(wdb.A).get('changeDepth'));
}

async setChangeDepth(depth: number): Promise<void> {
await this.db.sublevel(wdb.A).put('changeDepth', depth.toString());
}
}
2 changes: 2 additions & 0 deletions src/wallet/db/level/layout.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
// Database layout
export const wdb = {
V: 'V', // Version
M: 'M', // Master key
A: 'A', // Address
};

0 comments on commit 442ca78

Please sign in to comment.