@w3ux/react-connect-kit 1.2.1 → 1.3.0-alpha.2
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/ExtensionAccountsProvider/Extensions.js +75 -167
- package/ExtensionAccountsProvider/Extensions.js.map +1 -1
- package/ExtensionAccountsProvider/defaults.js +7 -5
- package/ExtensionAccountsProvider/defaults.js.map +1 -1
- package/ExtensionAccountsProvider/index.js +139 -256
- package/ExtensionAccountsProvider/index.js.map +1 -1
- package/ExtensionAccountsProvider/snap.js +52 -121
- package/ExtensionAccountsProvider/snap.js.map +1 -1
- package/ExtensionAccountsProvider/types.js +2 -0
- package/ExtensionAccountsProvider/types.js.map +1 -1
- package/ExtensionAccountsProvider/useImportExtension.js +24 -44
- package/ExtensionAccountsProvider/useImportExtension.js.map +1 -1
- package/ExtensionAccountsProvider/utils.js +14 -17
- package/ExtensionAccountsProvider/utils.js.map +1 -1
- package/ExtensionsProvider/defaults.js +8 -6
- package/ExtensionsProvider/defaults.js.map +1 -1
- package/ExtensionsProvider/index.js +56 -115
- package/ExtensionsProvider/index.js.map +1 -1
- package/ExtensionsProvider/types.js +2 -0
- package/ExtensionsProvider/types.js.map +1 -1
- package/ExtensionsProvider/utils.js +21 -73
- package/ExtensionsProvider/utils.js.map +1 -1
- package/LedgerAccountsProvider/defaults.js +9 -7
- package/LedgerAccountsProvider/defaults.js.map +1 -1
- package/LedgerAccountsProvider/index.js +39 -68
- package/LedgerAccountsProvider/index.js.map +1 -1
- package/LedgerAccountsProvider/types.js +2 -0
- package/LedgerAccountsProvider/types.js.map +1 -1
- package/LedgerAccountsProvider/utils.js +16 -25
- package/LedgerAccountsProvider/utils.js.map +1 -1
- package/VaultAccountsProvider/defaults.js +9 -7
- package/VaultAccountsProvider/defaults.js.map +1 -1
- package/VaultAccountsProvider/index.js +40 -66
- package/VaultAccountsProvider/index.js.map +1 -1
- package/VaultAccountsProvider/types.js +2 -0
- package/VaultAccountsProvider/types.js.map +1 -1
- package/VaultAccountsProvider/utils.js +6 -4
- package/VaultAccountsProvider/utils.js.map +1 -1
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/package.json +5 -5
- package/types.js +2 -0
- package/types.js.map +1 -1
|
@@ -1,100 +1,37 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
|
-
function step(op) {
|
|
26
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
|
-
switch (op[0]) {
|
|
31
|
-
case 0: case 1: t = op; break;
|
|
32
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
33
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
34
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
35
|
-
default:
|
|
36
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
38
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
39
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
40
|
-
if (t[2]) _.ops.pop();
|
|
41
|
-
_.trys.pop(); continue;
|
|
42
|
-
}
|
|
43
|
-
op = body.call(thisArg, _);
|
|
44
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
45
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
1
|
import { localStorageOrDefault } from "@w3ux/utils";
|
|
49
2
|
import Keyring from "@polkadot/keyring";
|
|
50
3
|
import { DEFAULT_SS58 } from "./defaults";
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
enable = window.injectedWeb3[id].enable;
|
|
63
|
-
if (enable !== undefined && typeof enable === "function") {
|
|
64
|
-
rawExtensions.set(id, enable);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
this.removeFromLocal(id);
|
|
68
|
-
}
|
|
4
|
+
export class Extensions {
|
|
5
|
+
static getFromIds = (extensionIds) => {
|
|
6
|
+
const rawExtensions = new Map();
|
|
7
|
+
extensionIds.forEach(async (id) => {
|
|
8
|
+
if (this.isLocal(id)) {
|
|
9
|
+
const { enable } = window.injectedWeb3[id];
|
|
10
|
+
if (enable !== undefined && typeof enable === "function") {
|
|
11
|
+
rawExtensions.set(id, enable);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
this.removeFromLocal(id);
|
|
69
15
|
}
|
|
70
|
-
return [2 ];
|
|
71
|
-
});
|
|
72
|
-
}); });
|
|
73
|
-
return rawExtensions;
|
|
74
|
-
};
|
|
75
|
-
Extensions.enable = function (extensions, dappName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
76
|
-
var results, err_1;
|
|
77
|
-
return __generator(_a, function (_b) {
|
|
78
|
-
switch (_b.label) {
|
|
79
|
-
case 0:
|
|
80
|
-
_b.trys.push([0, 2, , 3]);
|
|
81
|
-
return [4 , Promise.allSettled(Array.from(extensions.values()).map(function (enable) { return enable(dappName); }))];
|
|
82
|
-
case 1:
|
|
83
|
-
results = _b.sent();
|
|
84
|
-
return [2 , results];
|
|
85
|
-
case 2:
|
|
86
|
-
err_1 = _b.sent();
|
|
87
|
-
console.error("Error during 'enable' call for Extensions: ", err_1);
|
|
88
|
-
return [2 , []];
|
|
89
|
-
case 3: return [2 ];
|
|
90
16
|
}
|
|
91
17
|
});
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
18
|
+
return rawExtensions;
|
|
19
|
+
};
|
|
20
|
+
static enable = async (extensions, dappName) => {
|
|
21
|
+
try {
|
|
22
|
+
const results = await Promise.allSettled(Array.from(extensions.values()).map((enable) => enable(dappName)));
|
|
23
|
+
return results;
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
console.error("Error during 'enable' call for Extensions: ", err);
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
static formatEnabled = (extensions, results) => {
|
|
31
|
+
const extensionsState = new Map();
|
|
32
|
+
for (let i = 0; i < results.length; i++) {
|
|
33
|
+
const result = results[i];
|
|
34
|
+
const id = Array.from(extensions.keys())[i];
|
|
98
35
|
if (result.status === "fulfilled") {
|
|
99
36
|
extensionsState.set(id, {
|
|
100
37
|
extension: result.value,
|
|
@@ -110,81 +47,52 @@ var Extensions = (function () {
|
|
|
110
47
|
}
|
|
111
48
|
return extensionsState;
|
|
112
49
|
};
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
extensionEntries = Array.from(extensions.entries());
|
|
142
|
-
all_1 = [];
|
|
143
|
-
_loop_1 = function (i) {
|
|
144
|
-
var result = results[i];
|
|
145
|
-
var id = extensionEntries[i][0];
|
|
146
|
-
var signer = extensionEntries[i][1].extension.signer;
|
|
147
|
-
if (result.status === "fulfilled") {
|
|
148
|
-
var filtered = result.value
|
|
149
|
-
.map(function (newAccount) { return (__assign(__assign({}, newAccount), { address: keyring.addFromAddress(newAccount.address).address })); })
|
|
150
|
-
.filter(function (_b) {
|
|
151
|
-
var address = _b.address;
|
|
152
|
-
return !all_1.find(function (currentAccount) { return address === currentAccount.address; });
|
|
153
|
-
})
|
|
154
|
-
.map(function (_b) {
|
|
155
|
-
var address = _b.address, name = _b.name;
|
|
156
|
-
return ({
|
|
157
|
-
address: address,
|
|
158
|
-
name: name,
|
|
159
|
-
source: id,
|
|
160
|
-
signer: signer,
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
all_1.push.apply(all_1, filtered);
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
for (i = 0; i < results.length; i++) {
|
|
167
|
-
_loop_1(i);
|
|
168
|
-
}
|
|
169
|
-
return [2 , all_1];
|
|
170
|
-
case 3:
|
|
171
|
-
err_2 = _b.sent();
|
|
172
|
-
console.error("Error during 'enable' and format call for Extensions: ", err_2);
|
|
173
|
-
return [2 , []];
|
|
174
|
-
case 4: return [2 ];
|
|
50
|
+
static connected = (extensions) => new Map(Array.from(extensions.entries()).filter(([, state]) => state.connected));
|
|
51
|
+
static withError = (extensions) => new Map(Array.from(extensions.entries()).filter(([, state]) => !state.connected));
|
|
52
|
+
static getAllAccounts = async (extensions) => {
|
|
53
|
+
const keyring = new Keyring();
|
|
54
|
+
keyring.setSS58Format(DEFAULT_SS58);
|
|
55
|
+
try {
|
|
56
|
+
const results = await Promise.allSettled(Array.from(extensions.values()).map(({ extension }) => extension.accounts.get()));
|
|
57
|
+
const extensionEntries = Array.from(extensions.entries());
|
|
58
|
+
const all = [];
|
|
59
|
+
for (let i = 0; i < results.length; i++) {
|
|
60
|
+
const result = results[i];
|
|
61
|
+
const id = extensionEntries[i][0];
|
|
62
|
+
const signer = extensionEntries[i][1].extension.signer;
|
|
63
|
+
if (result.status === "fulfilled") {
|
|
64
|
+
const filtered = result.value
|
|
65
|
+
.map((newAccount) => ({
|
|
66
|
+
...newAccount,
|
|
67
|
+
address: keyring.addFromAddress(newAccount.address).address,
|
|
68
|
+
}))
|
|
69
|
+
.filter(({ address }) => !all.find((currentAccount) => address === currentAccount.address))
|
|
70
|
+
.map(({ address, name }) => ({
|
|
71
|
+
address,
|
|
72
|
+
name,
|
|
73
|
+
source: id,
|
|
74
|
+
signer,
|
|
75
|
+
}));
|
|
76
|
+
all.push(...filtered);
|
|
77
|
+
}
|
|
175
78
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
79
|
+
return all;
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
console.error("Error during 'enable' and format call for Extensions: ", err);
|
|
83
|
+
return [];
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
static isLocal = (id) => {
|
|
87
|
+
const current = localStorageOrDefault(`active_extensions`, [], true);
|
|
88
|
+
let isLocal = false;
|
|
181
89
|
if (Array.isArray(current)) {
|
|
182
|
-
isLocal = current.find(
|
|
90
|
+
isLocal = current.find((l) => l === id) !== undefined;
|
|
183
91
|
}
|
|
184
92
|
return !!isLocal;
|
|
185
93
|
};
|
|
186
|
-
|
|
187
|
-
|
|
94
|
+
static addToLocal = (id) => {
|
|
95
|
+
const current = localStorageOrDefault(`active_extensions`, [], true);
|
|
188
96
|
if (Array.isArray(current)) {
|
|
189
97
|
if (!current.includes(id)) {
|
|
190
98
|
current.push(id);
|
|
@@ -192,15 +100,15 @@ var Extensions = (function () {
|
|
|
192
100
|
}
|
|
193
101
|
}
|
|
194
102
|
};
|
|
195
|
-
|
|
196
|
-
|
|
103
|
+
static removeFromLocal = (id) => {
|
|
104
|
+
let current = localStorageOrDefault(`active_extensions`, [], true);
|
|
197
105
|
if (Array.isArray(current)) {
|
|
198
|
-
current = current.filter(
|
|
106
|
+
current = current.filter((localId) => localId !== id);
|
|
199
107
|
localStorage.setItem("active_extensions", JSON.stringify(current));
|
|
200
108
|
}
|
|
201
109
|
};
|
|
202
|
-
|
|
203
|
-
}());
|
|
204
|
-
export { Extensions };
|
|
110
|
+
}
|
|
205
111
|
|
|
112
|
+
//# sourceMappingURL=Extensions.js.map
|
|
206
113
|
|
|
114
|
+
//# sourceMappingURL=Extensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ExtensionAccountsProvider/Extensions.ts"],"names":[],"mappings":"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","file":"Extensions.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport { localStorageOrDefault } from \"@w3ux/utils\";\nimport {\n ExtensionEnableResult,\n ExtensionEnableResults,\n RawExtensionEnable,\n RawExtensions,\n} from \"../types\";\nimport {\n ExtensionAccount,\n ExtensionInterface,\n} from \"../ExtensionsProvider/types\";\nimport Keyring from \"@polkadot/keyring\";\nimport { DEFAULT_SS58 } from \"./defaults\";\n\n// A static class to manage the discovery and importing of extensions.\nexport class Extensions {\n // Gets a map of extensions with their enable functions from `injectedWeb3`.\n static getFromIds = (extensionIds: string[]): RawExtensions => {\n const rawExtensions = new Map<string, RawExtensionEnable>();\n\n extensionIds.forEach(async (id) => {\n if (this.isLocal(id)) {\n const { enable } = window.injectedWeb3[id];\n\n if (enable !== undefined && typeof enable === \"function\") {\n rawExtensions.set(id, enable);\n } else {\n this.removeFromLocal(id);\n }\n }\n });\n return rawExtensions;\n };\n\n // Calls `enable` for the provided extensions.\n static enable = async (\n extensions: RawExtensions,\n dappName: string\n ): Promise<PromiseSettledResult<ExtensionInterface>[]> => {\n try {\n const results = await Promise.allSettled(\n Array.from(extensions.values()).map((enable) => enable(dappName))\n );\n return results;\n } catch (err) {\n console.error(\"Error during 'enable' call for Extensions: \", err);\n // Return an empty array if an error occurs.\n return [];\n }\n };\n\n // Formats the results of an extension's `enable` function.\n static formatEnabled = (\n extensions: RawExtensions,\n results: PromiseSettledResult<ExtensionInterface>[]\n ): ExtensionEnableResults => {\n // Accumulate resulting extensions state after attempting to enable.\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 // Return successfully connected extensions.\n static connected = (\n extensions: ExtensionEnableResults\n ): ExtensionEnableResults =>\n new Map(\n Array.from(extensions.entries()).filter(([, state]) => state.connected)\n );\n\n static withError = (\n extensions: ExtensionEnableResults\n ): ExtensionEnableResults =>\n new Map(\n Array.from(extensions.entries()).filter(([, state]) => !state.connected)\n );\n\n // Calls `enable` and formats the results of an extension's `enable` function.\n static getAllAccounts = async (\n extensions: ExtensionEnableResults\n ): Promise<ExtensionAccount[]> => {\n // By default, format addresses with the default ss58 prefix.\n const keyring = new Keyring();\n keyring.setSS58Format(DEFAULT_SS58);\n\n try {\n const results = await Promise.allSettled(\n Array.from(extensions.values()).map(({ extension }) =>\n extension.accounts.get()\n )\n );\n\n const extensionEntries = Array.from(extensions.entries());\n const all: ExtensionAccount[] = [];\n\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n const id = 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((newAccount) => ({\n ...newAccount,\n address: keyring.addFromAddress(newAccount.address).address,\n }))\n // Remove accounts that have already been imported.\n .filter(\n ({ address }) =>\n !all.find(\n (currentAccount) => address === currentAccount.address\n )\n )\n // Reformat entries to include extension source.\n .map(({ address, name }) => ({\n address,\n name,\n source: id,\n signer,\n }));\n\n all.push(...filtered);\n }\n }\n\n return all;\n } catch (err) {\n // Return an empty array if an error occurs.\n console.error(\n \"Error during 'enable' and format call for Extensions: \",\n err\n );\n return [];\n }\n };\n\n // Check if an extension exists in local `active_extensions`.\n static isLocal = (id: string): boolean => {\n const current = localStorageOrDefault<string[]>(\n `active_extensions`,\n [],\n true\n );\n let isLocal = false;\n if (Array.isArray(current)) {\n isLocal = current.find((l) => l === id) !== undefined;\n }\n return !!isLocal;\n };\n\n // Adds an extension to local `active_extensions`.\n static addToLocal = (id: string): void => {\n const current = localStorageOrDefault<string[]>(\n `active_extensions`,\n [],\n true\n );\n if (Array.isArray(current)) {\n if (!current.includes(id)) {\n current.push(id);\n localStorage.setItem(\"active_extensions\", JSON.stringify(current));\n }\n }\n };\n\n // Removes extension from local `active_extensions`.\n static removeFromLocal = (id: string): void => {\n let current = localStorageOrDefault<string[]>(\n `active_extensions`,\n [],\n true\n );\n if (Array.isArray(current)) {\n current = current.filter((localId: string) => localId !== id);\n localStorage.setItem(\"active_extensions\", JSON.stringify(current));\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ExtensionAccountsProvider/Extensions.ts"],"names":[],"mappings":"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","file":"Extensions.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport { localStorageOrDefault } from \"@w3ux/utils\";\nimport {\n ExtensionEnableResult,\n ExtensionEnableResults,\n RawExtensionEnable,\n RawExtensions,\n} from \"../types\";\nimport {\n ExtensionAccount,\n ExtensionInterface,\n} from \"../ExtensionsProvider/types\";\nimport Keyring from \"@polkadot/keyring\";\nimport { DEFAULT_SS58 } from \"./defaults\";\n\n// A static class to manage the discovery and importing of extensions.\nexport class Extensions {\n // Gets a map of extensions with their enable functions from `injectedWeb3`.\n static getFromIds = (extensionIds: string[]): RawExtensions => {\n const rawExtensions = new Map<string, RawExtensionEnable>();\n\n extensionIds.forEach(async (id) => {\n if (this.isLocal(id)) {\n const { enable } = window.injectedWeb3[id];\n\n if (enable !== undefined && typeof enable === \"function\") {\n rawExtensions.set(id, enable);\n } else {\n this.removeFromLocal(id);\n }\n }\n });\n return rawExtensions;\n };\n\n // Calls `enable` for the provided extensions.\n static enable = async (\n extensions: RawExtensions,\n dappName: string\n ): Promise<PromiseSettledResult<ExtensionInterface>[]> => {\n try {\n const results = await Promise.allSettled(\n Array.from(extensions.values()).map((enable) => enable(dappName))\n );\n return results;\n } catch (err) {\n console.error(\"Error during 'enable' call for Extensions: \", err);\n // Return an empty array if an error occurs.\n return [];\n }\n };\n\n // Formats the results of an extension's `enable` function.\n static formatEnabled = (\n extensions: RawExtensions,\n results: PromiseSettledResult<ExtensionInterface>[]\n ): ExtensionEnableResults => {\n // Accumulate resulting extensions state after attempting to enable.\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 // Return successfully connected extensions.\n static connected = (\n extensions: ExtensionEnableResults\n ): ExtensionEnableResults =>\n new Map(\n Array.from(extensions.entries()).filter(([, state]) => state.connected)\n );\n\n static withError = (\n extensions: ExtensionEnableResults\n ): ExtensionEnableResults =>\n new Map(\n Array.from(extensions.entries()).filter(([, state]) => !state.connected)\n );\n\n // Calls `enable` and formats the results of an extension's `enable` function.\n static getAllAccounts = async (\n extensions: ExtensionEnableResults\n ): Promise<ExtensionAccount[]> => {\n // By default, format addresses with the default ss58 prefix.\n const keyring = new Keyring();\n keyring.setSS58Format(DEFAULT_SS58);\n\n try {\n const results = await Promise.allSettled(\n Array.from(extensions.values()).map(({ extension }) =>\n extension.accounts.get()\n )\n );\n\n const extensionEntries = Array.from(extensions.entries());\n const all: ExtensionAccount[] = [];\n\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n const id = 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((newAccount) => ({\n ...newAccount,\n address: keyring.addFromAddress(newAccount.address).address,\n }))\n // Remove accounts that have already been imported.\n .filter(\n ({ address }) =>\n !all.find(\n (currentAccount) => address === currentAccount.address\n )\n )\n // Reformat entries to include extension source.\n .map(({ address, name }) => ({\n address,\n name,\n source: id,\n signer,\n }));\n\n all.push(...filtered);\n }\n }\n\n return all;\n } catch (err) {\n // Return an empty array if an error occurs.\n console.error(\n \"Error during 'enable' and format call for Extensions: \",\n err\n );\n return [];\n }\n };\n\n // Check if an extension exists in local `active_extensions`.\n static isLocal = (id: string): boolean => {\n const current = localStorageOrDefault<string[]>(\n `active_extensions`,\n [],\n true\n );\n let isLocal = false;\n if (Array.isArray(current)) {\n isLocal = current.find((l) => l === id) !== undefined;\n }\n return !!isLocal;\n };\n\n // Adds an extension to local `active_extensions`.\n static addToLocal = (id: string): void => {\n const current = localStorageOrDefault<string[]>(\n `active_extensions`,\n [],\n true\n );\n if (Array.isArray(current)) {\n if (!current.includes(id)) {\n current.push(id);\n localStorage.setItem(\"active_extensions\", JSON.stringify(current));\n }\n }\n };\n\n // Removes extension from local `active_extensions`.\n static removeFromLocal = (id: string): void => {\n let current = localStorageOrDefault<string[]>(\n `active_extensions`,\n [],\n true\n );\n if (Array.isArray(current)) {\n current = current.filter((localId: string) => localId !== id);\n localStorage.setItem(\"active_extensions\", JSON.stringify(current));\n }\n };\n}\n"]}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
export
|
|
2
|
-
connectExtensionAccounts:
|
|
1
|
+
export const defaultExtensionAccountsContext = {
|
|
2
|
+
connectExtensionAccounts: () => Promise.resolve(false),
|
|
3
3
|
extensionAccountsSynced: "unsynced",
|
|
4
|
-
getExtensionAccounts:
|
|
4
|
+
getExtensionAccounts: (ss58) => [],
|
|
5
5
|
};
|
|
6
|
-
export
|
|
6
|
+
export const defaultHandleImportExtension = {
|
|
7
7
|
newAccounts: [],
|
|
8
8
|
meta: {
|
|
9
9
|
accountsToRemove: [],
|
|
10
10
|
removedActiveAccount: null,
|
|
11
11
|
},
|
|
12
12
|
};
|
|
13
|
-
export
|
|
13
|
+
export const DEFAULT_SS58 = 0;
|
|
14
14
|
|
|
15
|
+
//# sourceMappingURL=defaults.js.map
|
|
15
16
|
|
|
17
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ExtensionAccountsProvider/defaults.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/ExtensionAccountsProvider/defaults.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,+BAA+B,GAC1C;IACE,wBAAwB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IACtD,uBAAuB,EAAE,UAAU;IACnC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;CACnC,CAAC;AAEJ,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,WAAW,EAAE,EAAE;IACf,IAAI,EAAE;QACJ,gBAAgB,EAAE,EAAE;QACpB,oBAAoB,EAAE,IAAI;KAC3B;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC","file":"defaults.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function, no-unused-vars */\n\nimport { ExtensionAccountsContextInterface } from \"./types\";\n\nexport const defaultExtensionAccountsContext: ExtensionAccountsContextInterface =\n {\n connectExtensionAccounts: () => Promise.resolve(false),\n extensionAccountsSynced: \"unsynced\",\n getExtensionAccounts: (ss58) => [],\n };\n\nexport const defaultHandleImportExtension = {\n newAccounts: [],\n meta: {\n accountsToRemove: [],\n removedActiveAccount: null,\n },\n};\n\nexport const DEFAULT_SS58 = 0;\n"]}
|