1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // Copyright 2017-2020 @polkadot/apps authors & contributors
- // This software may be modified and distributed under the terms
- // of the Apache-2.0 license. See the LICENSE file for details.
- import { app } from 'electron';
- import { FileStore } from '@polkadot/ui-keyring/stores';
- import { KeyringJson } from '@polkadot/ui-keyring/types';
- import path from 'path';
- import { IpcMainHandler } from './ipc-main-handler';
- import { registerIpcHandler } from './register-ipc-handler';
- const ACCOUNTS_SUBFOLDER = 'polkadot-accounts';
- export const accountStoreIpcHandler = (fileStore: FileStore): IpcMainHandler => ({
- 'account-store-all': () => {
- let result: { key: string, value: KeyringJson }[] = [];
- const collect = (key: string, value: KeyringJson) => {
- result = [...result, { key, value }];
- };
- fileStore.all(collect);
- return result;
- },
- 'account-store-get': async (key: string) => new Promise((resolve) => {
- try {
- fileStore.get(key, resolve);
- } catch (err) {
- resolve(null);
- }
- }),
- 'account-store-remove': async (key: string) => new Promise((resolve) =>
- fileStore.remove(key, resolve)
- ),
- 'account-store-set': async (key: string, value: KeyringJson) => new Promise((resolve) =>
- fileStore.set(key, value, resolve)
- )
- });
- export const registerAccountStoreHandlers = (): void => {
- const defaultStorePath = path.join(app.getPath('userData'), ACCOUNTS_SUBFOLDER);
- const fileStore = new FileStore(defaultStorePath);
- registerIpcHandler(accountStoreIpcHandler(fileStore));
- };
|