From e84e60f7363b41095d6b93d005fc8b93549ec5c8 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Sun, 27 Jul 2025 00:11:28 -0700 Subject: [PATCH] Adjust how multiple fields are requested from Safe. Fix buffer handling in Safe. --- src/lib/account.ts | 4 ++-- src/lib/rolodex.ts | 9 ++++----- src/lib/wallets/wallet.ts | 4 ++-- src/lib/workers/safe.ts | 7 ++++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/lib/account.ts b/src/lib/account.ts index d4d259f..c0e24bc 100644 --- a/src/lib/account.ts +++ b/src/lib/account.ts @@ -79,7 +79,7 @@ export class Account { await SafeWorker.request({ method: 'destroy', store: 'Account', - name: this.publicKey + names: this.publicKey }) } catch (err) { console.error(err) @@ -325,7 +325,7 @@ export class Account { try { const response = await SafeWorker.request({ method: 'fetch', - name: this.publicKey, + names: this.publicKey, store: 'Account', password: password.buffer }) diff --git a/src/lib/rolodex.ts b/src/lib/rolodex.ts index 527be64..83b77f2 100644 --- a/src/lib/rolodex.ts +++ b/src/lib/rolodex.ts @@ -95,7 +95,7 @@ export class Rolodex { const { result } = await SafeWorker.request({ method: 'destroy', store: 'Rolodex', - name: address + names: address }) return result } @@ -116,7 +116,7 @@ export class Rolodex { for (const address of addresses) { names.push(address) } - data.name = JSON.stringify(names) + data.names = names const { result } = await SafeWorker.request(data) return result } @@ -131,7 +131,7 @@ export class Rolodex { try { const response = await SafeWorker.request({ method: 'fetch', - name, + names: name, store: 'Rolodex', password: utf8.toBuffer('') }) @@ -154,7 +154,6 @@ export class Rolodex { try { const response = await SafeWorker.request({ method: 'export', - name: '', store: 'Rolodex', password: utf8.toBuffer('') }) @@ -175,7 +174,7 @@ export class Rolodex { try { const response = await SafeWorker.request({ method: 'fetch', - name: address, + names: address, store: 'Rolodex', password: utf8.toBuffer('') }) diff --git a/src/lib/wallets/wallet.ts b/src/lib/wallets/wallet.ts index 942725e..c09a0e1 100644 --- a/src/lib/wallets/wallet.ts +++ b/src/lib/wallets/wallet.ts @@ -178,7 +178,7 @@ export abstract class Wallet { await SafeWorker.request({ store: 'Wallet', method: 'destroy', - [this.id]: this.id + name: this.id }) } catch (err) { console.error(err) @@ -293,7 +293,7 @@ export abstract class Wallet { } const response = await SafeWorker.request({ method: 'fetch', - name: this.id, + names: this.id, store: 'Wallet', password: password.buffer }) diff --git a/src/lib/workers/safe.ts b/src/lib/workers/safe.ts index 86b53bc..f1adb1a 100644 --- a/src/lib/workers/safe.ts +++ b/src/lib/workers/safe.ts @@ -29,12 +29,13 @@ export class Safe extends WorkerInterface { if (typeof data !== 'object') { throw new TypeError('Invalid data') } - const { method, names, store, password } = data as { [key: string]: unknown } + let { method, names, store, password, ...buffers } = data as { [key: string]: unknown } if (typeof method !== 'string') { throw new TypeError('Invalid method') } + if (typeof names === 'string') names = [names] function validateNames (names: unknown): asserts names is string[] { - if (!Array.isArray(names) || names.some(n => typeof n !== 'string')) { + if (names !== undefined && (!Array.isArray(names) || names.some(n => typeof n !== 'string'))) { throw new TypeError('Invalid name') } } @@ -49,7 +50,7 @@ export class Safe extends WorkerInterface { try { switch (method) { case 'store': { - return { result: await this.store(data, store, password) } + return { result: await this.store(buffers, store, password) } } case 'fetch': { return await this.fetch(names, store, password) -- 2.47.3