]> git.codecow.com Git - libnemo.git/commitdiff
Adjust how multiple fields are requested from Safe. Fix buffer handling in Safe.
authorChris Duncan <chris@zoso.dev>
Sun, 27 Jul 2025 07:11:28 +0000 (00:11 -0700)
committerChris Duncan <chris@zoso.dev>
Sun, 27 Jul 2025 07:11:28 +0000 (00:11 -0700)
src/lib/account.ts
src/lib/rolodex.ts
src/lib/wallets/wallet.ts
src/lib/workers/safe.ts

index d4d259f232b5c6677de95a255ef646cf91a7671f..c0e24bc01c1d799094077d5b43edd21d05e5d1ec 100644 (file)
@@ -79,7 +79,7 @@ export class Account {
                        await SafeWorker.request<boolean>({\r
                                method: 'destroy',\r
                                store: 'Account',\r
-                               name: this.publicKey\r
+                               names: this.publicKey\r
                        })\r
                } catch (err) {\r
                        console.error(err)\r
@@ -325,7 +325,7 @@ export class Account {
                try {\r
                        const response = await SafeWorker.request<ArrayBuffer>({\r
                                method: 'fetch',\r
-                               name: this.publicKey,\r
+                               names: this.publicKey,\r
                                store: 'Account',\r
                                password: password.buffer\r
                        })\r
index 527be64da3267d74edff2c6af2c958b59062c8b8..83b77f2cbd577757207ed3e064e755a1d7e29f64 100644 (file)
@@ -95,7 +95,7 @@ export class Rolodex {
                const { result } = await SafeWorker.request<boolean>({
                        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<boolean>(data)
                return result
        }
@@ -131,7 +131,7 @@ export class Rolodex {
                try {
                        const response = await SafeWorker.request<ArrayBuffer>({
                                method: 'fetch',
-                               name,
+                               names: name,
                                store: 'Rolodex',
                                password: utf8.toBuffer('')
                        })
@@ -154,7 +154,6 @@ export class Rolodex {
                try {
                        const response = await SafeWorker.request<ArrayBuffer>({
                                method: 'export',
-                               name: '',
                                store: 'Rolodex',
                                password: utf8.toBuffer('')
                        })
@@ -175,7 +174,7 @@ export class Rolodex {
                try {
                        const response = await SafeWorker.request<ArrayBuffer>({
                                method: 'fetch',
-                               name: address,
+                               names: address,
                                store: 'Rolodex',
                                password: utf8.toBuffer('')
                        })
index 942725ee5f84cd079705e6f00777227793bf6c29..c09a0e1ec400ae9cb6114f6107b5b3002647ba0e 100644 (file)
@@ -178,7 +178,7 @@ export abstract class Wallet {
                        await SafeWorker.request<boolean>({\r
                                store: 'Wallet',\r
                                method: 'destroy',\r
-                               [this.id]: this.id\r
+                               name: this.id\r
                        })\r
                } catch (err) {\r
                        console.error(err)\r
@@ -293,7 +293,7 @@ export abstract class Wallet {
                        }\r
                        const response = await SafeWorker.request<ArrayBuffer>({\r
                                method: 'fetch',\r
-                               name: this.id,\r
+                               names: this.id,\r
                                store: 'Wallet',\r
                                password: password.buffer\r
                        })\r
index 86b53bc30c881d220b0398e2fdd208cab60b5bee..f1adb1a578c9939340b2aed9bc339843e20e7fc7 100644 (file)
@@ -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)