From a7937f4fb1d369620e9e96604098881012101dec Mon Sep 17 00:00:00 2001 From: bithighlander Date: Fri, 24 Jan 2025 18:25:46 -0600 Subject: [PATCH] begin vault --- .pnp.cjs | 13 +++++--- package.json | 1 + packages/keepkey-desktop/package.json | 1 + .../keepkey-sdk-server/src/auth/apiContext.ts | 32 +++++++++++++++---- .../src/controllers/vault.ts | 1 - yarn.lock | 2 ++ 6 files changed, 37 insertions(+), 13 deletions(-) diff --git a/.pnp.cjs b/.pnp.cjs index 612fe5b97..a9feae4fd 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -63,6 +63,7 @@ const RAW_RUNTIME_STATE = ["dotenv-cli", "npm:7.4.1"],\ ["eslint", "npm:8.28.0"],\ ["prettier", "npm:2.8.0"],\ + ["sqlite3", "virtual:479e91aba732dfc5c837df32a82c907db9b1d39aa178929519c67467d04d784625c3e98cfe81a7c259ce054a0a3c575e063bd98c166a2b73974fb11820f1715e#npm:5.1.7"],\ ["typescript", "patch:typescript@npm%3A4.9.3#optional!builtin::version=4.9.3&hash=a66ed4"],\ ["web3", "npm:4.0.1"],\ ["yaml-sort", "npm:1.2.1"]\ @@ -25358,6 +25359,7 @@ const RAW_RUNTIME_STATE = ["secp256k1", "npm:4.0.3"],\ ["semver", "npm:7.3.8"],\ ["source-map-support", "npm:0.5.21"],\ + ["sqlite3", "virtual:479e91aba732dfc5c837df32a82c907db9b1d39aa178929519c67467d04d784625c3e98cfe81a7c259ce054a0a3c575e063bd98c166a2b73974fb11820f1715e#npm:5.1.7"],\ ["sudo-prompt", "npm:9.2.1"],\ ["swagger-ui-dist", "npm:4.15.5"],\ ["swagger-ui-express", "virtual:15149eb01efe6dae21a27159fdeb7f62cca0f4e19d09d3abd4eb0cc76d89fd1a64d234276982b5e754aae438c4679864c2b8ee064ff74d60a47dfedc442fd25f#npm:4.6.0"],\ @@ -25651,6 +25653,7 @@ const RAW_RUNTIME_STATE = ["dotenv-cli", "npm:7.4.1"],\ ["eslint", "npm:8.28.0"],\ ["prettier", "npm:2.8.0"],\ + ["sqlite3", "virtual:479e91aba732dfc5c837df32a82c907db9b1d39aa178929519c67467d04d784625c3e98cfe81a7c259ce054a0a3c575e063bd98c166a2b73974fb11820f1715e#npm:5.1.7"],\ ["typescript", "patch:typescript@npm%3A4.9.3#optional!builtin::version=4.9.3&hash=a66ed4"],\ ["web3", "npm:4.0.1"],\ ["yaml-sort", "npm:1.2.1"]\ @@ -25699,7 +25702,7 @@ const RAW_RUNTIME_STATE = ["protobufjs", "npm:7.2.3"],\ ["rimraf", "npm:3.0.2"],\ ["sqlite", "npm:5.1.1"],\ - ["sqlite3", "virtual:219d26d1d0771a5fbaf079c8f64baea913a84f98cec45e2913572135c9a5fabb9e1e0c018757dd6542cbd5e92b529717a307a4baa00928e557c1cc8fe9d6b336#npm:5.1.7"],\ + ["sqlite3", "virtual:479e91aba732dfc5c837df32a82c907db9b1d39aa178929519c67467d04d784625c3e98cfe81a7c259ce054a0a3c575e063bd98c166a2b73974fb11820f1715e#npm:5.1.7"],\ ["tsoa", "npm:4.1.3"],\ ["typescript", "patch:typescript@npm%3A4.9.3#optional!builtin::version=4.9.3&hash=a66ed4"]\ ],\ @@ -32930,16 +32933,16 @@ const RAW_RUNTIME_STATE = ]],\ ["sqlite3", [\ ["npm:5.1.7", {\ - "packageLocation": "./.yarn/unplugged/sqlite3-virtual-eb00bf160b/node_modules/sqlite3/",\ + "packageLocation": "./.yarn/unplugged/sqlite3-virtual-c34773cf1c/node_modules/sqlite3/",\ "packageDependencies": [\ ["sqlite3", "npm:5.1.7"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:219d26d1d0771a5fbaf079c8f64baea913a84f98cec45e2913572135c9a5fabb9e1e0c018757dd6542cbd5e92b529717a307a4baa00928e557c1cc8fe9d6b336#npm:5.1.7", {\ - "packageLocation": "./.yarn/unplugged/sqlite3-virtual-eb00bf160b/node_modules/sqlite3/",\ + ["virtual:479e91aba732dfc5c837df32a82c907db9b1d39aa178929519c67467d04d784625c3e98cfe81a7c259ce054a0a3c575e063bd98c166a2b73974fb11820f1715e#npm:5.1.7", {\ + "packageLocation": "./.yarn/unplugged/sqlite3-virtual-c34773cf1c/node_modules/sqlite3/",\ "packageDependencies": [\ - ["sqlite3", "virtual:219d26d1d0771a5fbaf079c8f64baea913a84f98cec45e2913572135c9a5fabb9e1e0c018757dd6542cbd5e92b529717a307a4baa00928e557c1cc8fe9d6b336#npm:5.1.7"],\ + ["sqlite3", "virtual:479e91aba732dfc5c837df32a82c907db9b1d39aa178929519c67467d04d784625c3e98cfe81a7c259ce054a0a3c575e063bd98c166a2b73974fb11820f1715e#npm:5.1.7"],\ ["@types/node-gyp", null],\ ["bindings", "npm:1.5.0"],\ ["node-addon-api", "npm:7.1.1"],\ diff --git a/package.json b/package.json index 7fac4dadf..2aefbb556 100755 --- a/package.json +++ b/package.json @@ -93,6 +93,7 @@ "builder-util": "^25.0.0-alpha.6", "crypto": "^1.0.1", "dotenv-cli": "^7.4.1", + "sqlite3": "^5.1.7", "web3": "^4.0.1" } } diff --git a/packages/keepkey-desktop/package.json b/packages/keepkey-desktop/package.json index 82b989b59..e517d47b5 100644 --- a/packages/keepkey-desktop/package.json +++ b/packages/keepkey-desktop/package.json @@ -141,6 +141,7 @@ "secp256k1": "^4.0.3", "semver": "^7.3.8", "source-map-support": "^0.5.21", + "sqlite3": "^5.1.7", "sudo-prompt": "^9.2.1", "swagger-ui-dist": "^4.15.5", "swagger-ui-express": "^4.6.0", diff --git a/packages/keepkey-sdk-server/src/auth/apiContext.ts b/packages/keepkey-sdk-server/src/auth/apiContext.ts index 5b0187c9e..10fabafc4 100644 --- a/packages/keepkey-sdk-server/src/auth/apiContext.ts +++ b/packages/keepkey-sdk-server/src/auth/apiContext.ts @@ -8,11 +8,8 @@ import { isEqual } from 'lodash' import type { SdkClient } from './sdkClient' const horribleAccountsHack = new WeakMap>() -//@TODO get web3 providers - -//serve web3 provider - -//maintain network context from renderer selections +// @ts-ignore +// import sqlite3 from 'sqlite3' export class ApiContext { readonly sdkClient: SdkClient @@ -21,6 +18,7 @@ export class ApiContext { readonly accounts: Record readonly path: string api: Pioneer + sql: any protected constructor(sdkClient: SdkClient, accounts: Record, path: string) { this.sdkClient = sdkClient @@ -29,10 +27,31 @@ export class ApiContext { this.accounts = accounts this.path = path this.api = new Pioneer('https://pioneers.dev/spec/swagger.json', { queryKey: 'kkdesktop:1' }) + + // // Use the callback signature (err: Error | null) => void + // this.sql = new sqlite3.Database('./keepkey-vault.sqlite3', (err: Error | null) => { + // if (err) { + // console.error('Failed to connect to SQLite database:', err.message) + // } + // }) + // + // // Create a table if it doesn't exist yet + // this.sql.run( + // ` + // CREATE TABLE IF NOT EXISTS accounts ( + // address TEXT PRIMARY KEY, + // addressNList TEXT NOT NULL + // ) + // `, + // (err: Error | null) => { + // if (err) { + // console.error('Failed to create accounts table:', err.message) + // } + // } + // ) } static async create(sdkClient: SdkClient, path: string): Promise { - // TODO: something something database something if (!horribleAccountsHack.has(sdkClient.wallet)) { horribleAccountsHack.set(sdkClient.wallet, {}) } @@ -55,6 +74,5 @@ export class ApiContext { throw new Error('conflicting account entry already present') } this.accounts[address] = addressNList - // TODO: something something database something } } diff --git a/packages/keepkey-sdk-server/src/controllers/vault.ts b/packages/keepkey-sdk-server/src/controllers/vault.ts index 720b5df8d..4cc9c1f45 100644 --- a/packages/keepkey-sdk-server/src/controllers/vault.ts +++ b/packages/keepkey-sdk-server/src/controllers/vault.ts @@ -43,7 +43,6 @@ export class VaultController extends ApiController { @OperationId('getVaults') public async getVaults(): Promise { try { - return []; } catch (error: any) { throw new Error(`Failed to retrieve pubkeys: ${error.message}`); diff --git a/yarn.lock b/yarn.lock index a2d448c13..b1cc32142 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19739,6 +19739,7 @@ __metadata: secp256k1: "npm:^4.0.3" semver: "npm:^7.3.8" source-map-support: "npm:^0.5.21" + sqlite3: "npm:^5.1.7" sudo-prompt: "npm:^9.2.1" swagger-ui-dist: "npm:^4.15.5" swagger-ui-express: "npm:^4.6.0" @@ -19769,6 +19770,7 @@ __metadata: dotenv-cli: "npm:^7.4.1" eslint: "npm:^8.28.0" prettier: "npm:^2.3.2" + sqlite3: "npm:^5.1.7" typescript: "npm:^4.7.0" web3: "npm:^4.0.1" yaml-sort: "npm:^1.2.1"