From b820e32eb35c936e0c10be608505a2ce03d5327e Mon Sep 17 00:00:00 2001 From: boneyard93501 <4523011+boneyard93501@users.noreply.github.com> Date: Fri, 22 Oct 2021 13:54:37 -0500 Subject: [PATCH] add sqlite --- data/snapshot.db | Bin 8192 -> 8192 bytes src/index.ts | 16 +++++++++++++--- src/local_db.ts | 29 +++++++++++++++++------------ 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/data/snapshot.db b/data/snapshot.db index dce303520bb70d94a8529ce0328ab7e6bd2bd2f9..57767358d7155a4c2072c9177e6e45ba897d803d 100644 GIT binary patch literal 8192 zcmeHKPjBNy6i=#^7LXQkSs@N9S))CG6r!2&jK}t6X-hfn0hV4?O%=`9Z&K65w(M!Q zRh3J%AAmb2ZhQg`d=tI_AA{#K|7cKQ1xOrbh=4*FM^=g>+LN+cw4MKem`11ceif;S8J~~eDUiOc{Hy81Jw)k)U_{Sbzet85u0v-X6fJeY1@P9$z``2%O{^^q^J$?K12hfk+ zfA97wy@Idekjf(_sLmv(oXaowEtM3wRV-L$R#u_PBciQLpBs-J|OP8hPLDW zx~b}_)l-t5tVL~8%}}i4L7C-HhEi*Ww$>SJI9k^fn4=>L&sY=g5k!*8o6nARI|m&BCdyH!9r1b4P2 zg87`n=XU^hO@p=amdMr1G|wQlsRMJk@--{K3vM~3Q0q`jV*YP#Tm zJ|gq^DXLsmrj*>wal5WU%l)FIVE_5sT@`g~nn)Ke_EFAgG@sKeCa|qWiQ*AG5?QjZ zm}MBII81DksDqHkAd`?w-S&UO?rcL#DF_IqQX#fgkU&Ej>qJ|Ta~lc~8N^LyHjfj? zuzdsPN~4J=%Ho7((jXFug F_B%|BCo2E| delta 28 kcmZp0XmFSy&B!=W#+i|EW5N=CCI*3xg`RvH8#Xcm0CWNfQUCw| diff --git a/src/index.ts b/src/index.ts index 58c0cfc..0ad990a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,6 +12,7 @@ import { base64 } from "ethers/lib/utils"; // Arbitrary secret key that could be read from file, CLI arg or db // We derive both the PeerId and the (ethers) wallet from this key const SecretKey = "0x0123456789012345678901234567890123456789012345678901234567890123"; +const DB_PATH = "./data/snapshot.db"; function create_wallet(sk: string): ethers.Wallet { @@ -41,6 +42,7 @@ class EIPValidator implements ProVoValidationDef { // console.log(resp_str); let obj = { "signature": signed_response, "validation": response }; + return JSON.stringify(obj); } @@ -64,6 +66,12 @@ class EIPValidator implements ProVoValidationDef { // console.log(resp_str); let obj = { "signature": signed_response, "validation": response }; + + // commit to local sqlite + let db = get_db(DB_PATH); + await create_table(db); + await insert_event(db, JSON.parse(eip_json), response, signed_response); + return JSON.stringify(obj); } @@ -75,9 +83,11 @@ class DataProvider implements DataProviderDef { } - get_records() { + async get_records(): Promise { // todo: add pagination - return select_events(); + const result = await select_events(); + console.log("get records: ", result); + return result; } } @@ -96,7 +106,7 @@ async function main() { console.log("wallet pk: ", wallet.publicKey); const skBytes: Uint8Array = ethers.utils.arrayify(SecretKey); - console.log("arraify: ", skBytes); + console.log("arrayify: ", skBytes); await startFluencePeer(skBytes); diff --git a/src/local_db.ts b/src/local_db.ts index 59f0984..ef3298a 100644 --- a/src/local_db.ts +++ b/src/local_db.ts @@ -63,7 +63,7 @@ export async function create_table(db: sqlite.Database) { return promise; } -export async function insert_event(db: any, eip_obj: any, response_obj: Response, signed_msg: string) { +export async function insert_event(db: sqlite.Database, eip_obj: any, response_obj: Response, signed_msg: string) { const stmt = `insert into snapshot values (?, ?, ?, ?, ?, ?, ?, ?, ?)`; var ins_vals = [eip_obj.data.message.snapshot, eip_obj.address, eip_obj.sig, JSON.stringify(eip_obj.data), response_obj.peer_id, response_obj.timestamp, response_obj.eip_validation, response_obj.ts_validation, signed_msg]; let promise = new Promise((resolve, reject) => db.run(stmt, ins_vals, (res: sqlite.RunResult, err: Error) => { @@ -93,7 +93,7 @@ export function select_event(snapshot_id: number): any { ? console.log(row) : console.log(`No record found for snapshot id: ${snapshot_id}`); }); - // db.close(); + db.close(); }; // export function select_events(): Array { @@ -102,23 +102,28 @@ export function select_events(): any { // todo: add pagination const stmt = 'select * from snapshot limit ?'; console.log("select events stmt: ", stmt); - var response_arr: Array; - db.all(stmt, [100], (err, rows) => { - // db.close(); + var response_arr = new Array(); + const select = db.all(stmt, [100], (err, rows) => { + console.log("number of rows: ", rows.length); if (err) { // todo: no good, change that. console.error(err.message); return []; } - for (var row of rows) { - const _row: DBRecord = row; - console.log("row: ", row); - // response_arr.push(_row); - }; - return response_arr; - }); + else { + for (var row of rows) { + const _row: DBRecord = row; + response_arr.push(_row); + }; + console.log("len resp array in db all: ", response_arr.length); + return response_arr; + } + }); + // console.log("select: ", select); // db.close(); + // console.log("len resp array out of db all: ", response_arr); + // return response_arr; }