@w3ux/observables-connect 0.9.21 → 0.9.23
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.
- package/accounts/index.d.ts +2 -0
- package/accounts/index.js +2 -0
- package/accounts/index.js.map +1 -1
- package/accounts/state.d.ts +3 -0
- package/accounts/state.js +13 -0
- package/accounts/state.js.map +1 -0
- package/accounts/util.d.ts +4 -0
- package/accounts/util.js +11 -0
- package/accounts/util.js.map +1 -1
- package/extensions/index.d.ts +1 -0
- package/extensions/index.js +1 -0
- package/extensions/index.js.map +1 -1
- package/package.json +1 -1
package/accounts/index.d.ts
CHANGED
package/accounts/index.js
CHANGED
package/accounts/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/accounts/index.ts"],"names":[],"mappings":"AAGA,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA","file":"index.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nexport * from './get'\nexport * from './local'\nexport * from './util'\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/accounts/index.ts"],"names":[],"mappings":"AAGA,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA","file":"index.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nexport * from './get'\nexport * from './local'\nexport * from './observables'\nexport * from './state'\nexport * from './util'\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const unsubs = {};
|
|
2
|
+
export const addUnsub = (id, unsub) => {
|
|
3
|
+
unsubs[id] = unsub;
|
|
4
|
+
};
|
|
5
|
+
export const unsubAll = () => {
|
|
6
|
+
Object.values(unsubs).forEach((unsub) => {
|
|
7
|
+
unsub();
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=state.js.map
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/accounts/state.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,MAAM,GAA+B,EAAE,CAAA;AAGpD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,KAAiB,EAAE,EAAE;IACxD,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;AACpB,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,KAAK,EAAE,CAAA;IACT,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA","file":"state.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nexport const unsubs: Record<string, () => void> = {}\n\n// Add an extension id to unsub state\nexport const addUnsub = (id: string, unsub: () => void) => {\n unsubs[id] = unsub\n}\n\n// Unsubscribe to all unsubs\nexport const unsubAll = () => {\n Object.values(unsubs).forEach((unsub) => {\n unsub()\n })\n}\n"]}
|
package/accounts/util.d.ts
CHANGED
|
@@ -7,4 +7,8 @@ interface Config {
|
|
|
7
7
|
export declare const processExtensionAccounts: (config: Config, currentAccounts: ExtensionAccount[], signer: unknown, accounts: ExtensionAccount[]) => ProcessExtensionAccountsResult;
|
|
8
8
|
export declare const formatExtensionAccounts: (accounts: ExtensionAccount[], ss58: number) => ExtensionAccount[];
|
|
9
9
|
export declare const getInExternalAccounts: (accounts: ImportedAccount[], network: string) => import("@w3ux/types").ExternalAccount[];
|
|
10
|
+
export declare const updateAccounts: ({ add, remove, }: {
|
|
11
|
+
add: ExtensionAccount[];
|
|
12
|
+
remove: ExtensionAccount[];
|
|
13
|
+
}) => void;
|
|
10
14
|
export {};
|
package/accounts/util.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { formatAccountSs58, isValidAddress } from '@w3ux/utils';
|
|
2
2
|
import { defaultProcessExtensionResult } from '../consts';
|
|
3
3
|
import { getActiveAccountLocal, getLocalExternalAccounts } from './local';
|
|
4
|
+
import { _accounts } from './observables';
|
|
4
5
|
export const processExtensionAccounts = (config, currentAccounts, signer, accounts) => {
|
|
5
6
|
const { source, ss58, network } = config;
|
|
6
7
|
if (!accounts.length) {
|
|
@@ -19,6 +20,10 @@ export const processExtensionAccounts = (config, currentAccounts, signer, accoun
|
|
|
19
20
|
source,
|
|
20
21
|
signer,
|
|
21
22
|
}));
|
|
23
|
+
updateAccounts({
|
|
24
|
+
add: accounts,
|
|
25
|
+
remove: removedAccounts,
|
|
26
|
+
});
|
|
22
27
|
return {
|
|
23
28
|
newAccounts: accounts,
|
|
24
29
|
meta: {
|
|
@@ -45,6 +50,12 @@ export const getInExternalAccounts = (accounts, network) => {
|
|
|
45
50
|
const localExternalAccounts = getLocalExternalAccounts(network);
|
|
46
51
|
return (localExternalAccounts.filter((a) => (accounts || []).find((b) => b.address === a.address) !== undefined) || []);
|
|
47
52
|
};
|
|
53
|
+
export const updateAccounts = ({ add, remove, }) => {
|
|
54
|
+
const newAccounts = [..._accounts.getValue()]
|
|
55
|
+
.concat(add)
|
|
56
|
+
.filter((a) => remove.find((s) => s.address === a.address) === undefined);
|
|
57
|
+
_accounts.next(newAccounts);
|
|
58
|
+
};
|
|
48
59
|
|
|
49
60
|
//# sourceMappingURL=util.js.map
|
|
50
61
|
|
package/accounts/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/accounts/util.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"sources":["../src/accounts/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type {\n ExtensionAccount,\n ImportedAccount,\n ProcessExtensionAccountsResult,\n} from '@w3ux/types'\nimport { formatAccountSs58, isValidAddress } from '@w3ux/utils'\nimport { defaultProcessExtensionResult } from '../consts'\nimport { getActiveAccountLocal, getLocalExternalAccounts } from './local'\nimport { _accounts } from './observables'\n\n// Gets accounts to be imported and commits them to state\n\ninterface Config {\n source: string\n ss58: number\n network: string\n}\nexport const processExtensionAccounts = (\n config: Config,\n currentAccounts: ExtensionAccount[],\n signer: unknown,\n accounts: ExtensionAccount[]\n): ProcessExtensionAccountsResult => {\n const { source, ss58, network } = config\n if (!accounts.length) {\n return defaultProcessExtensionResult\n }\n\n // Get valid accounts from extension\n accounts = formatExtensionAccounts(accounts, ss58)\n\n // Remove accounts from local external accounts if present\n const inExternal = getInExternalAccounts(accounts, network)\n\n // Find any accounts that have been removed from this extension\n const removedAccounts = currentAccounts\n .filter((j) => j.source === source)\n .filter((j) => !accounts.find((i) => i.address === j.address))\n\n // Check whether active account is present in forgotten accounts\n const removedActiveAccount =\n removedAccounts.find(\n ({ address }) => address === getActiveAccountLocal(network, ss58)\n )?.address || null\n\n // Remove accounts that have already been added to `currentAccounts` via another extension\n accounts = accounts.filter(\n ({ address }) =>\n !currentAccounts.find(\n (j) => j.address === address && j.source !== 'external'\n )\n )\n\n // Format accounts properties\n accounts = accounts.map(({ address, name }) => ({\n address,\n name,\n source,\n signer,\n }))\n\n // Update observable state\n updateAccounts({\n add: accounts,\n remove: removedAccounts,\n })\n\n return {\n newAccounts: accounts,\n meta: {\n accountsToRemove: [...inExternal, ...removedAccounts],\n removedActiveAccount,\n },\n }\n}\n\n// Formats accounts to correct ss58 and removes invalid accounts\nexport const formatExtensionAccounts = (\n accounts: ExtensionAccount[],\n ss58: number\n) => {\n accounts = accounts\n // Remove accounts that do not contain correctly formatted addresses\n .filter(({ address }) => isValidAddress(address))\n // Reformat addresses to ensure default ss58 format\n .map((account) => {\n const formattedAddress = formatAccountSs58(account.address, ss58)\n if (!formattedAddress) {\n return null\n }\n account.address = formattedAddress\n return account\n })\n // Remove null entries resulting from invalid formatted addresses\n .filter((account) => account !== null)\n\n return accounts\n}\n\n// Gets accounts that exist in local external accounts\nexport const getInExternalAccounts = (\n accounts: ImportedAccount[],\n network: string\n) => {\n const localExternalAccounts = getLocalExternalAccounts(network)\n return (\n localExternalAccounts.filter(\n (a) => (accounts || []).find((b) => b.address === a.address) !== undefined\n ) || []\n )\n}\n\n// Updates accounts observable based on removed and added accounts\nexport const updateAccounts = ({\n add,\n remove,\n}: {\n add: ExtensionAccount[]\n remove: ExtensionAccount[]\n}) => {\n const newAccounts = [..._accounts.getValue()]\n .concat(add)\n .filter((a) => remove.find((s) => s.address === a.address) === undefined)\n _accounts.next(newAccounts)\n}\n"]}
|
package/extensions/index.d.ts
CHANGED
package/extensions/index.js
CHANGED
package/extensions/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/extensions/index.ts"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA","file":"index.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nexport * from './connect'\nexport * from './discover'\nexport * from './enable'\nexport * from './local'\nexport * from './state'\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/extensions/index.ts"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA","file":"index.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nexport * from './connect'\nexport * from './discover'\nexport * from './enable'\nexport * from './local'\nexport * from './observables'\nexport * from './state'\n"]}
|