@w3ux/observables-connect 0.9.2 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,7 @@
1
- import type { ExtensionAccount, ExtensionEnableResults } from '@w3ux/types';
1
+ import type { ExtensionAccount, ExtensionEnableResults, ExtensionInterface, RawExtensionEnable, RawExtensions } from '@w3ux/types';
2
+ export declare const getExtensionsById: (extensionIds: string[]) => Map<string, RawExtensionEnable>;
3
+ export declare const enableExtensions: (extensions: RawExtensions, dappName: string) => Promise<PromiseSettledResult<ExtensionInterface>[]>;
4
+ export declare const formatEnabledExtensions: (extensions: RawExtensions, results: PromiseSettledResult<ExtensionInterface>[]) => ExtensionEnableResults;
5
+ export declare const connectedExtensions: (extensions: ExtensionEnableResults) => ExtensionEnableResults;
6
+ export declare const extensionsWithError: (extensions: ExtensionEnableResults) => ExtensionEnableResults;
2
7
  export declare const getAccountsFromExtensions: (extensions: ExtensionEnableResults) => Promise<ExtensionAccount[]>;
package/accounts/index.js CHANGED
@@ -1,5 +1,52 @@
1
1
  import { formatAccountSs58 } from '@w3ux/utils';
2
+ import { isExtensionLocal, removeExtensionFromLocal } from '../extensions/local';
2
3
  import { DefaultSS58 } from './consts';
4
+ export const getExtensionsById = (extensionIds) => {
5
+ const rawExtensions = new Map();
6
+ extensionIds.forEach(async (id) => {
7
+ if (isExtensionLocal(id)) {
8
+ const { enable } = window.injectedWeb3[id];
9
+ if (enable !== undefined && typeof enable === 'function') {
10
+ rawExtensions.set(id, enable);
11
+ }
12
+ else {
13
+ removeExtensionFromLocal(id);
14
+ }
15
+ }
16
+ });
17
+ return rawExtensions;
18
+ };
19
+ export const enableExtensions = async (extensions, dappName) => {
20
+ try {
21
+ return await Promise.allSettled(Array.from(extensions.values()).map((fn) => fn(dappName)));
22
+ }
23
+ catch (e) {
24
+ console.error("Error during 'enable' extensions call: ", e);
25
+ return [];
26
+ }
27
+ };
28
+ export const formatEnabledExtensions = (extensions, results) => {
29
+ const extensionsState = new Map();
30
+ for (let i = 0; i < results.length; i++) {
31
+ const result = results[i];
32
+ const id = Array.from(extensions.keys())[i];
33
+ if (result.status === 'fulfilled') {
34
+ extensionsState.set(id, {
35
+ extension: result.value,
36
+ connected: true,
37
+ });
38
+ }
39
+ else if (result.status === 'rejected') {
40
+ extensionsState.set(id, {
41
+ connected: false,
42
+ error: result.reason,
43
+ });
44
+ }
45
+ }
46
+ return extensionsState;
47
+ };
48
+ export const connectedExtensions = (extensions) => new Map(Array.from(extensions.entries()).filter(([, state]) => state.connected));
49
+ export const extensionsWithError = (extensions) => new Map(Array.from(extensions.entries()).filter(([, state]) => !state.connected));
3
50
  export const getAccountsFromExtensions = async (extensions) => {
4
51
  try {
5
52
  const results = await Promise.allSettled(Array.from(extensions.values()).map(({ extension }) => extension.accounts.get()));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/accounts/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGtC,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,UAAkC,EACL,EAAE;IAC/B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CACpD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CACzB,CACF,CAAA;QACD,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAuB,EAAE,CAAA;QAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACzB,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAA;YAEtD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK;qBAE1B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBACf,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;oBAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,OAAO,IAAI,CAAA;oBACb,CAAC;oBACD,OAAO;wBACL,GAAG,OAAO;wBACV,QAAQ;qBACT,CAAA;gBACH,CAAC,CAAC;qBAED,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;qBAEzB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;qBAErE,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC3B,OAAO;oBACP,IAAI;oBACJ,MAAM;oBACN,MAAM;iBACP,CAAC,CAAC,CAAA;gBAEL,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAA;QACzD,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA","file":"index.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type { ExtensionAccount, ExtensionEnableResults } from '@w3ux/types'\nimport { formatAccountSs58 } from '@w3ux/utils'\nimport { DefaultSS58 } from './consts'\n\n// Connects to the provided extensions and fetches their accounts\nexport const getAccountsFromExtensions = async (\n extensions: ExtensionEnableResults\n): Promise<ExtensionAccount[]> => {\n try {\n const results = await Promise.allSettled(\n Array.from(extensions.values()).map(({ extension }) =>\n extension.accounts.get()\n )\n )\n const extensionEntries = Array.from(extensions.entries())\n const accounts: ExtensionAccount[] = []\n\n for (let i = 0; i < results.length; i++) {\n const result = results[i]\n const source = extensionEntries[i][0]\n const signer = extensionEntries[i][1].extension.signer\n\n if (result.status === 'fulfilled') {\n const filtered = result.value\n // Reformat addresses with default ss58 prefix\n .map((account) => {\n const adddress = formatAccountSs58(account.address, DefaultSS58)\n if (!adddress) {\n return null\n }\n return {\n ...account,\n adddress,\n }\n })\n // Remove null entries resulting from invalid formatted addresses\n .filter((a) => a !== null)\n // Remove accounts that have already been imported\n .filter(({ address }) => !accounts.find((a) => address === a.address))\n // Reformat entries to include extension source\n .map(({ address, name }) => ({\n address,\n name,\n source,\n signer,\n }))\n\n accounts.push(...filtered)\n }\n }\n return accounts\n } catch (e) {\n console.error('Error during enable and format call: ', e)\n return []\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/accounts/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type {\n ExtensionAccount,\n ExtensionEnableResult,\n ExtensionEnableResults,\n ExtensionInterface,\n RawExtensionEnable,\n RawExtensions,\n} from '@w3ux/types'\nimport { formatAccountSs58 } from '@w3ux/utils'\nimport { isExtensionLocal, removeExtensionFromLocal } from '../extensions/local'\nimport { DefaultSS58 } from './consts'\n\n// Gets raw extensions by their ids\nexport const getExtensionsById = (extensionIds: string[]) => {\n const rawExtensions = new Map<string, RawExtensionEnable>()\n\n extensionIds.forEach(async (id) => {\n if (isExtensionLocal(id)) {\n const { enable } = window.injectedWeb3[id]\n if (enable !== undefined && typeof enable === 'function') {\n rawExtensions.set(id, enable)\n } else {\n removeExtensionFromLocal(id)\n }\n }\n })\n return rawExtensions\n}\n\n// Calls enable for the provided extensions\nexport const enableExtensions = async (\n extensions: RawExtensions,\n dappName: string\n) => {\n try {\n return await Promise.allSettled(\n Array.from(extensions.values()).map((fn) => fn(dappName))\n )\n } catch (e) {\n console.error(\"Error during 'enable' extensions call: \", e)\n return []\n }\n}\n\n// Formats the results of an extension's enable function\nexport const formatEnabledExtensions = (\n extensions: RawExtensions,\n results: PromiseSettledResult<ExtensionInterface>[]\n): ExtensionEnableResults => {\n const extensionsState = new Map<string, ExtensionEnableResult>()\n\n for (let i = 0; i < results.length; i++) {\n const result = results[i]\n const id = Array.from(extensions.keys())[i]\n\n if (result.status === 'fulfilled') {\n extensionsState.set(id, {\n extension: result.value,\n connected: true,\n })\n } else if (result.status === 'rejected') {\n extensionsState.set(id, {\n connected: false,\n error: result.reason,\n })\n }\n }\n return extensionsState\n}\n\n// Get successfully connected extensions\nexport const connectedExtensions = (\n extensions: ExtensionEnableResults\n): ExtensionEnableResults =>\n new Map(\n Array.from(extensions.entries()).filter(([, state]) => state.connected)\n )\n\n// Get extensions that failed to connect\nexport const extensionsWithError = (\n extensions: ExtensionEnableResults\n): ExtensionEnableResults =>\n new Map(\n Array.from(extensions.entries()).filter(([, state]) => !state.connected)\n )\n\n// Connects to the provided extensions and fetches their accounts\nexport const getAccountsFromExtensions = async (\n extensions: ExtensionEnableResults\n): Promise<ExtensionAccount[]> => {\n try {\n const results = await Promise.allSettled(\n Array.from(extensions.values()).map(({ extension }) =>\n extension.accounts.get()\n )\n )\n const extensionEntries = Array.from(extensions.entries())\n const accounts: ExtensionAccount[] = []\n\n for (let i = 0; i < results.length; i++) {\n const result = results[i]\n const source = extensionEntries[i][0]\n const signer = extensionEntries[i][1].extension.signer\n\n if (result.status === 'fulfilled') {\n const filtered = result.value\n // Reformat addresses with default ss58 prefix\n .map((account) => {\n const adddress = formatAccountSs58(account.address, DefaultSS58)\n if (!adddress) {\n return null\n }\n return {\n ...account,\n adddress,\n }\n })\n // Remove null entries resulting from invalid formatted addresses\n .filter((a) => a !== null)\n // Remove accounts that have already been imported\n .filter(({ address }) => !accounts.find((a) => address === a.address))\n // Reformat entries to include extension source\n .map(({ address, name }) => ({\n address,\n name,\n source,\n signer,\n }))\n\n accounts.push(...filtered)\n }\n }\n return accounts\n } catch (e) {\n console.error('Error during enable and format call: ', e)\n return []\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@w3ux/observables-connect",
3
- "version": "0.9.2",
3
+ "version": "0.9.3",
4
4
  "license": "GPL-3.0-only",
5
5
  "dependencies": {
6
6
  "@w3ux/extension-assets": "^2.2.0",
@@ -1,6 +0,0 @@
1
- import type { ExtensionEnableResults, ExtensionInterface, RawExtensionEnable, RawExtensions } from '@w3ux/types';
2
- export declare const getExtensionsById: (extensionIds: string[]) => Map<string, RawExtensionEnable>;
3
- export declare const enable: (extensions: RawExtensions, dappName: string) => Promise<PromiseSettledResult<ExtensionInterface>[]>;
4
- export declare const formatEnabledExtensions: (extensions: RawExtensions, results: PromiseSettledResult<ExtensionInterface>[]) => ExtensionEnableResults;
5
- export declare const connectedExtensions: (extensions: ExtensionEnableResults) => ExtensionEnableResults;
6
- export declare const extensionsWithError: (extensions: ExtensionEnableResults) => ExtensionEnableResults;
@@ -1,51 +0,0 @@
1
- import { isExtensionLocal, removeExtensionFromLocal } from '../extensions/local';
2
- export const getExtensionsById = (extensionIds) => {
3
- const rawExtensions = new Map();
4
- extensionIds.forEach(async (id) => {
5
- if (isExtensionLocal(id)) {
6
- const { enable } = window.injectedWeb3[id];
7
- if (enable !== undefined && typeof enable === 'function') {
8
- rawExtensions.set(id, enable);
9
- }
10
- else {
11
- removeExtensionFromLocal(id);
12
- }
13
- }
14
- });
15
- return rawExtensions;
16
- };
17
- export const enable = async (extensions, dappName) => {
18
- try {
19
- return await Promise.allSettled(Array.from(extensions.values()).map((fn) => fn(dappName)));
20
- }
21
- catch (e) {
22
- console.error("Error during 'enable' extensions call: ", e);
23
- return [];
24
- }
25
- };
26
- export const formatEnabledExtensions = (extensions, results) => {
27
- const extensionsState = new Map();
28
- for (let i = 0; i < results.length; i++) {
29
- const result = results[i];
30
- const id = Array.from(extensions.keys())[i];
31
- if (result.status === 'fulfilled') {
32
- extensionsState.set(id, {
33
- extension: result.value,
34
- connected: true,
35
- });
36
- }
37
- else if (result.status === 'rejected') {
38
- extensionsState.set(id, {
39
- connected: false,
40
- error: result.reason,
41
- });
42
- }
43
- }
44
- return extensionsState;
45
- };
46
- export const connectedExtensions = (extensions) => new Map(Array.from(extensions.entries()).filter(([, state]) => state.connected));
47
- export const extensionsWithError = (extensions) => new Map(Array.from(extensions.entries()).filter(([, state]) => !state.connected));
48
-
49
- //# sourceMappingURL=enable.js.map
50
-
51
- //# sourceMappingURL=enable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/accounts/enable.ts"],"names":[],"mappings":"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","file":"enable.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type {\n ExtensionEnableResult,\n ExtensionEnableResults,\n ExtensionInterface,\n RawExtensionEnable,\n RawExtensions,\n} from '@w3ux/types'\nimport { isExtensionLocal, removeExtensionFromLocal } from '../extensions/local'\n\n// Gets raw extensions by their ids\nexport const getExtensionsById = (extensionIds: string[]) => {\n const rawExtensions = new Map<string, RawExtensionEnable>()\n\n extensionIds.forEach(async (id) => {\n if (isExtensionLocal(id)) {\n const { enable } = window.injectedWeb3[id]\n if (enable !== undefined && typeof enable === 'function') {\n rawExtensions.set(id, enable)\n } else {\n removeExtensionFromLocal(id)\n }\n }\n })\n return rawExtensions\n}\n\n// Calls enable for the provided extensions\nexport const enable = async (extensions: RawExtensions, dappName: string) => {\n try {\n return await Promise.allSettled(\n Array.from(extensions.values()).map((fn) => fn(dappName))\n )\n } catch (e) {\n console.error(\"Error during 'enable' extensions call: \", e)\n return []\n }\n}\n\n// Formats the results of an extension's enable function\nexport const formatEnabledExtensions = (\n extensions: RawExtensions,\n results: PromiseSettledResult<ExtensionInterface>[]\n): ExtensionEnableResults => {\n const extensionsState = new Map<string, ExtensionEnableResult>()\n\n for (let i = 0; i < results.length; i++) {\n const result = results[i]\n const id = Array.from(extensions.keys())[i]\n\n if (result.status === 'fulfilled') {\n extensionsState.set(id, {\n extension: result.value,\n connected: true,\n })\n } else if (result.status === 'rejected') {\n extensionsState.set(id, {\n connected: false,\n error: result.reason,\n })\n }\n }\n return extensionsState\n}\n\n// Get successfully connected extensions\nexport const connectedExtensions = (\n extensions: ExtensionEnableResults\n): ExtensionEnableResults =>\n new Map(\n Array.from(extensions.entries()).filter(([, state]) => state.connected)\n )\n\n// Get extensions that failed to connect\nexport const extensionsWithError = (\n extensions: ExtensionEnableResults\n): ExtensionEnableResults =>\n new Map(\n Array.from(extensions.entries()).filter(([, state]) => !state.connected)\n )\n"]}