@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.
Files changed (43) hide show
  1. package/ExtensionAccountsProvider/Extensions.js +75 -167
  2. package/ExtensionAccountsProvider/Extensions.js.map +1 -1
  3. package/ExtensionAccountsProvider/defaults.js +7 -5
  4. package/ExtensionAccountsProvider/defaults.js.map +1 -1
  5. package/ExtensionAccountsProvider/index.js +139 -256
  6. package/ExtensionAccountsProvider/index.js.map +1 -1
  7. package/ExtensionAccountsProvider/snap.js +52 -121
  8. package/ExtensionAccountsProvider/snap.js.map +1 -1
  9. package/ExtensionAccountsProvider/types.js +2 -0
  10. package/ExtensionAccountsProvider/types.js.map +1 -1
  11. package/ExtensionAccountsProvider/useImportExtension.js +24 -44
  12. package/ExtensionAccountsProvider/useImportExtension.js.map +1 -1
  13. package/ExtensionAccountsProvider/utils.js +14 -17
  14. package/ExtensionAccountsProvider/utils.js.map +1 -1
  15. package/ExtensionsProvider/defaults.js +8 -6
  16. package/ExtensionsProvider/defaults.js.map +1 -1
  17. package/ExtensionsProvider/index.js +56 -115
  18. package/ExtensionsProvider/index.js.map +1 -1
  19. package/ExtensionsProvider/types.js +2 -0
  20. package/ExtensionsProvider/types.js.map +1 -1
  21. package/ExtensionsProvider/utils.js +21 -73
  22. package/ExtensionsProvider/utils.js.map +1 -1
  23. package/LedgerAccountsProvider/defaults.js +9 -7
  24. package/LedgerAccountsProvider/defaults.js.map +1 -1
  25. package/LedgerAccountsProvider/index.js +39 -68
  26. package/LedgerAccountsProvider/index.js.map +1 -1
  27. package/LedgerAccountsProvider/types.js +2 -0
  28. package/LedgerAccountsProvider/types.js.map +1 -1
  29. package/LedgerAccountsProvider/utils.js +16 -25
  30. package/LedgerAccountsProvider/utils.js.map +1 -1
  31. package/VaultAccountsProvider/defaults.js +9 -7
  32. package/VaultAccountsProvider/defaults.js.map +1 -1
  33. package/VaultAccountsProvider/index.js +40 -66
  34. package/VaultAccountsProvider/index.js.map +1 -1
  35. package/VaultAccountsProvider/types.js +2 -0
  36. package/VaultAccountsProvider/types.js.map +1 -1
  37. package/VaultAccountsProvider/utils.js +6 -4
  38. package/VaultAccountsProvider/utils.js.map +1 -1
  39. package/index.js +2 -0
  40. package/index.js.map +1 -1
  41. package/package.json +5 -5
  42. package/types.js +2 -0
  43. package/types.js.map +1 -1
@@ -1,129 +1,60 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
- 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;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
1
  import { hasMetaMask, isMetamaskSnapsSupported, } from "@chainsafe/metamask-polkadot-adapter/src/utils";
38
2
  import { enablePolkadotSnap } from "@chainsafe/metamask-polkadot-adapter";
39
- var transformAccounts = function (accounts) {
40
- return accounts.map(function (address, index) { return ({
41
- address: address,
42
- name: "Polkadot Snap ".concat(index + 1),
43
- source: "metamask-polkadot-snap",
44
- type: "ethereum",
45
- }); });
46
- };
47
- var injectPolkadotSnap = function (win, config) {
3
+ const transformAccounts = (accounts) => accounts.map((address, index) => ({
4
+ address,
5
+ name: `Polkadot Snap ${index + 1}`,
6
+ source: "metamask-polkadot-snap",
7
+ type: "ethereum",
8
+ }));
9
+ const injectPolkadotSnap = (win, config) => {
48
10
  win.injectedWeb3.Snap = {
49
- enable: function () { return __awaiter(void 0, void 0, void 0, function () {
50
- var snap;
51
- return __generator(this, function (_a) {
52
- switch (_a.label) {
53
- case 0: return [4 , enablePolkadotSnap(config)];
54
- case 1:
55
- snap = (_a.sent()).getMetamaskSnapApi();
56
- return [2 , {
57
- accounts: {
58
- get: function () { return __awaiter(void 0, void 0, void 0, function () {
59
- var response;
60
- return __generator(this, function (_a) {
61
- switch (_a.label) {
62
- case 0: return [4 , snap.getAddress()];
63
- case 1:
64
- response = _a.sent();
65
- return [2 , transformAccounts([response])];
66
- }
67
- });
68
- }); },
69
- subscribe: function (
70
- _cb) {
71
- return function () { };
72
- },
73
- },
74
- signer: {
75
- signPayload: function (payload) { return __awaiter(void 0, void 0, void 0, function () {
76
- var signature;
77
- return __generator(this, function (_a) {
78
- switch (_a.label) {
79
- case 0: return [4 , snap.signPayloadJSON(payload)];
80
- case 1:
81
- signature = (_a.sent());
82
- return [2 , { id: 0, signature: signature }];
83
- }
84
- });
85
- }); },
86
- signRaw: function (raw) { return __awaiter(void 0, void 0, void 0, function () {
87
- var signature;
88
- return __generator(this, function (_a) {
89
- switch (_a.label) {
90
- case 0: return [4 , snap.signPayloadRaw(raw)];
91
- case 1:
92
- signature = (_a.sent());
93
- return [2 , { id: 0, signature: signature }];
94
- }
95
- });
96
- }); },
97
- },
98
- }];
99
- }
100
- });
101
- }); },
11
+ enable: async () => {
12
+ const snap = (await enablePolkadotSnap(config)).getMetamaskSnapApi();
13
+ return {
14
+ accounts: {
15
+ get: async () => {
16
+ const response = await snap.getAddress();
17
+ return transformAccounts([response]);
18
+ },
19
+ subscribe: (_cb) => () => { },
20
+ },
21
+ signer: {
22
+ signPayload: async (payload) => {
23
+ const signature = (await snap.signPayloadJSON(payload));
24
+ return { id: 0, signature };
25
+ },
26
+ signRaw: async (raw) => {
27
+ const signature = (await snap.signPayloadRaw(raw));
28
+ return { id: 0, signature };
29
+ },
30
+ },
31
+ };
32
+ },
102
33
  version: "0.1",
103
34
  };
104
35
  };
105
- export var initPolkadotSnap = function (config) {
106
- return new Promise(function (resolve) {
107
- var win = window;
108
- win.injectedWeb3 = win.injectedWeb3 || {};
109
- if (hasMetaMask()) {
110
- isMetamaskSnapsSupported().then(function (result) {
111
- if (result) {
112
- injectPolkadotSnap(win, config);
113
- window.injectedWeb3["metamask-polkadot-snap"] =
114
- window.injectedWeb3["Snap"];
115
- delete window.injectedWeb3["Snap"];
116
- resolve(true);
117
- }
118
- else {
119
- resolve(false);
120
- }
121
- });
122
- }
123
- else {
124
- resolve(false);
125
- }
126
- });
127
- };
36
+ export const initPolkadotSnap = (config) => new Promise((resolve) => {
37
+ const win = window;
38
+ win.injectedWeb3 = win.injectedWeb3 || {};
39
+ if (hasMetaMask()) {
40
+ isMetamaskSnapsSupported().then((result) => {
41
+ if (result) {
42
+ injectPolkadotSnap(win, config);
43
+ window.injectedWeb3["metamask-polkadot-snap"] =
44
+ window.injectedWeb3["Snap"];
45
+ delete window.injectedWeb3["Snap"];
46
+ resolve(true);
47
+ }
48
+ else {
49
+ resolve(false);
50
+ }
51
+ });
52
+ }
53
+ else {
54
+ resolve(false);
55
+ }
56
+ });
128
57
 
58
+ //# sourceMappingURL=snap.js.map
129
59
 
60
+ //# sourceMappingURL=snap.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ExtensionAccountsProvider/snap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,OAAO,EACL,WAAW,EACX,wBAAwB,GACzB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAc1E,IAAM,iBAAiB,GAAG,UAAC,QAAkB;IAC3C,OAAA,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO,EAAE,KAAK,IAAK,OAAA,CAAC;QAChC,OAAO,SAAA;QACP,IAAI,EAAE,wBAAiB,KAAK,GAAG,CAAC,CAAE;QAClC,MAAM,EAAE,wBAAwB;QAChC,IAAI,EAAE,UAAU;KACjB,CAAC,EAL+B,CAK/B,CAAC;AALH,CAKG,CAAC;AAEN,IAAM,kBAAkB,GAAG,UAAC,GAAe,EAAE,MAAkB;IAC7D,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG;QACtB,MAAM,EAAE;;;;4BACQ,qBAAM,kBAAkB,CAAC,MAAM,CAAC,EAAA;;wBAAxC,IAAI,GAAG,CAAC,SAAgC,CAAC,CAAC,kBAAkB,EAAE;wBAEpE,sBAAO;gCACL,QAAQ,EAAE;oCACR,GAAG,EAAE;;;;wDACc,qBAAM,IAAI,CAAC,UAAU,EAAE,EAAA;;oDAAlC,QAAQ,GAAG,SAAuB;oDACxC,sBAAO,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC;;;yCACtC;oCACD,2GAA2G;oCAC3G,SAAS,EACP;oCACE,6EAA6E;oCAC7E,GAA0C;wCAE5C,gEAAgE;wCAChE,OAAA,cAAa,CAAC;oCAAd,CAAc;iCACjB;gCACD,MAAM,EAAE;oCACN,WAAW,EAAE,UACX,OAA0B;;;;wDAEP,qBAAM,IAAI,CAAC,eAAe,CAC3C,OAAO,CACR,EAAA;;oDAFK,SAAS,GAAG,CAAC,SAElB,CAAc;oDACf,sBAAO,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,WAAA,EAAE,EAAC;;;yCAC7B;oCACD,OAAO,EAAE,UAAO,GAAqB;;;;wDAChB,qBAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAA;;oDAA3C,SAAS,GAAG,CAAC,SAA8B,CAAc;oDAC/D,sBAAO,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,WAAA,EAAE,EAAC;;;yCAC7B;iCACF;6BACF,EAAC;;;aACH;QACD,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC,CAAC;AAEF,yFAAyF;AACzF,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,MAAkB;IACjD,OAAA,IAAI,OAAO,CAAC,UAAC,OAAO;QAClB,IAAM,GAAG,GAAG,MAA6B,CAAC;QAC1C,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;QAE1C,yCAAyC;QACzC,IAAI,WAAW,EAAE,EAAE,CAAC;YAClB,wBAAwB,EAAE,CAAC,IAAI,CAAC,UAAC,MAAM;gBACrC,IAAI,MAAM,EAAE,CAAC;oBACX,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAChC,yEAAyE;oBACzE,2EAA2E;oBAC3E,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC;wBAC3C,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBAC9B,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBACnC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;AAtBF,CAsBE,CAAC","file":"snap.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\nimport type {\n Injected,\n InjectedAccount,\n InjectedWindow,\n} from \"@polkadot/extension-inject/types\";\nimport {\n hasMetaMask,\n isMetamaskSnapsSupported,\n} from \"@chainsafe/metamask-polkadot-adapter/src/utils\";\nimport { enablePolkadotSnap } from \"@chainsafe/metamask-polkadot-adapter\";\nimport type {\n SignerPayloadJSON,\n SignerPayloadRaw,\n SignerResult,\n} from \"@polkadot/types/types\";\nimport type { HexString } from \"@polkadot/util/types\";\nimport { SnapConfig } from \"@chainsafe/metamask-polkadot-types\";\nimport { ExtensionAccount } from \"../ExtensionsProvider/types\";\n\ninterface Web3Window extends InjectedWindow {\n ethereum: unknown;\n}\n\nconst transformAccounts = (accounts: string[]): ExtensionAccount[] =>\n accounts.map((address, index) => ({\n address,\n name: `Polkadot Snap ${index + 1}`,\n source: \"metamask-polkadot-snap\",\n type: \"ethereum\",\n }));\n\nconst injectPolkadotSnap = (win: Web3Window, config: SnapConfig): void => {\n win.injectedWeb3.Snap = {\n enable: async (): Promise<Injected> => {\n const snap = (await enablePolkadotSnap(config)).getMetamaskSnapApi();\n\n return {\n accounts: {\n get: async (): Promise<InjectedAccount[]> => {\n const response = await snap.getAddress();\n return transformAccounts([response]);\n },\n // Currently there is only available only one account, in that case this method will never return anything.\n subscribe:\n (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n _cb: (accounts: InjectedAccount[]) => void\n ): (() => void) =>\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n (): void => {},\n },\n signer: {\n signPayload: async (\n payload: SignerPayloadJSON\n ): Promise<SignerResult> => {\n const signature = (await snap.signPayloadJSON(\n payload\n )) as HexString;\n return { id: 0, signature };\n },\n signRaw: async (raw: SignerPayloadRaw): Promise<SignerResult> => {\n const signature = (await snap.signPayloadRaw(raw)) as HexString;\n return { id: 0, signature };\n },\n },\n };\n },\n version: \"0.1\",\n };\n};\n\n// Initiate Polkadot snap and inject it into `injectedWeb3`. as `metamask-polkadot-snap`.\nexport const initPolkadotSnap = (config: SnapConfig): Promise<boolean> =>\n new Promise((resolve): void => {\n const win = window as Window & Web3Window;\n win.injectedWeb3 = win.injectedWeb3 || {};\n\n // Attempt to inject into `injectedWeb3`.\n if (hasMetaMask()) {\n isMetamaskSnapsSupported().then((result) => {\n if (result) {\n injectPolkadotSnap(win, config);\n // Overwrite `injectedWeb3` key with correct id and delete stale version.\n // Issue at: https://github.com/ChainSafe/metamask-snap-polkadot/issues/204\n window.injectedWeb3[\"metamask-polkadot-snap\"] =\n window.injectedWeb3[\"Snap\"];\n delete window.injectedWeb3[\"Snap\"];\n resolve(true);\n } else {\n resolve(false);\n }\n });\n } else {\n resolve(false);\n }\n });\n"]}
1
+ {"version":3,"sources":["../src/ExtensionAccountsProvider/snap.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,WAAW,EACX,wBAAwB,GACzB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAc1E,MAAM,iBAAiB,GAAG,CAAC,QAAkB,EAAsB,EAAE,CACnE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,OAAO;IACP,IAAI,EAAE,iBAAiB,KAAK,GAAG,CAAC,EAAE;IAClC,MAAM,EAAE,wBAAwB;IAChC,IAAI,EAAE,UAAU;CACjB,CAAC,CAAC,CAAC;AAEN,MAAM,kBAAkB,GAAG,CAAC,GAAe,EAAE,MAAkB,EAAQ,EAAE;IACvE,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG;QACtB,MAAM,EAAE,KAAK,IAAuB,EAAE;YACpC,MAAM,IAAI,GAAG,CAAC,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;YAErE,OAAO;gBACL,QAAQ,EAAE;oBACR,GAAG,EAAE,KAAK,IAAgC,EAAE;wBAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;wBACzC,OAAO,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACvC,CAAC;oBAED,SAAS,EACP,CAEE,GAA0C,EAC5B,EAAE,CAElB,GAAS,EAAE,GAAE,CAAC;iBACjB;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE,KAAK,EAChB,OAA0B,EACH,EAAE;wBACzB,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAC3C,OAAO,CACR,CAAc,CAAC;wBAChB,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;oBAC9B,CAAC;oBACD,OAAO,EAAE,KAAK,EAAE,GAAqB,EAAyB,EAAE;wBAC9D,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAc,CAAC;wBAChE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;oBAC9B,CAAC;iBACF;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAkB,EAAoB,EAAE,CACvE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAQ,EAAE;IAC5B,MAAM,GAAG,GAAG,MAA6B,CAAC;IAC1C,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;IAG1C,IAAI,WAAW,EAAE,EAAE,CAAC;QAClB,wBAAwB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAGhC,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC;oBAC3C,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC9B,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;AACH,CAAC,CAAC,CAAC","file":"snap.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\nimport type {\n Injected,\n InjectedAccount,\n InjectedWindow,\n} from \"@polkadot/extension-inject/types\";\nimport {\n hasMetaMask,\n isMetamaskSnapsSupported,\n} from \"@chainsafe/metamask-polkadot-adapter/src/utils\";\nimport { enablePolkadotSnap } from \"@chainsafe/metamask-polkadot-adapter\";\nimport type {\n SignerPayloadJSON,\n SignerPayloadRaw,\n SignerResult,\n} from \"@polkadot/types/types\";\nimport type { HexString } from \"@polkadot/util/types\";\nimport { SnapConfig } from \"@chainsafe/metamask-polkadot-types\";\nimport { ExtensionAccount } from \"../ExtensionsProvider/types\";\n\ninterface Web3Window extends InjectedWindow {\n ethereum: unknown;\n}\n\nconst transformAccounts = (accounts: string[]): ExtensionAccount[] =>\n accounts.map((address, index) => ({\n address,\n name: `Polkadot Snap ${index + 1}`,\n source: \"metamask-polkadot-snap\",\n type: \"ethereum\",\n }));\n\nconst injectPolkadotSnap = (win: Web3Window, config: SnapConfig): void => {\n win.injectedWeb3.Snap = {\n enable: async (): Promise<Injected> => {\n const snap = (await enablePolkadotSnap(config)).getMetamaskSnapApi();\n\n return {\n accounts: {\n get: async (): Promise<InjectedAccount[]> => {\n const response = await snap.getAddress();\n return transformAccounts([response]);\n },\n // Currently there is only available only one account, in that case this method will never return anything.\n subscribe:\n (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n _cb: (accounts: InjectedAccount[]) => void\n ): (() => void) =>\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n (): void => {},\n },\n signer: {\n signPayload: async (\n payload: SignerPayloadJSON\n ): Promise<SignerResult> => {\n const signature = (await snap.signPayloadJSON(\n payload\n )) as HexString;\n return { id: 0, signature };\n },\n signRaw: async (raw: SignerPayloadRaw): Promise<SignerResult> => {\n const signature = (await snap.signPayloadRaw(raw)) as HexString;\n return { id: 0, signature };\n },\n },\n };\n },\n version: \"0.1\",\n };\n};\n\n// Initiate Polkadot snap and inject it into `injectedWeb3`. as `metamask-polkadot-snap`.\nexport const initPolkadotSnap = (config: SnapConfig): Promise<boolean> =>\n new Promise((resolve): void => {\n const win = window as Window & Web3Window;\n win.injectedWeb3 = win.injectedWeb3 || {};\n\n // Attempt to inject into `injectedWeb3`.\n if (hasMetaMask()) {\n isMetamaskSnapsSupported().then((result) => {\n if (result) {\n injectPolkadotSnap(win, config);\n // Overwrite `injectedWeb3` key with correct id and delete stale version.\n // Issue at: https://github.com/ChainSafe/metamask-snap-polkadot/issues/204\n window.injectedWeb3[\"metamask-polkadot-snap\"] =\n window.injectedWeb3[\"Snap\"];\n delete window.injectedWeb3[\"Snap\"];\n resolve(true);\n } else {\n resolve(false);\n }\n });\n } else {\n resolve(false);\n }\n });\n"]}
@@ -1,3 +1,5 @@
1
1
  export {};
2
2
 
3
+ //# sourceMappingURL=types.js.map
3
4
 
5
+ //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ExtensionAccountsProvider/types.ts"],"names":[],"mappings":"AAAA;wCACwC","file":"types.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport { ReactNode } from \"react\";\nimport { ExtensionAccount } from \"../ExtensionsProvider/types\";\nimport { ImportedAccount, MaybeAddress } from \"../types\";\nimport { Sync } from \"@w3ux/types\";\n\nexport interface ExtensionAccountsContextInterface {\n connectExtensionAccounts: (id?: string) => Promise<boolean>;\n extensionAccountsSynced: Sync;\n getExtensionAccounts: (ss58: number) => ImportedAccount[];\n}\n\nexport interface ExtensionAccountsProviderProps {\n children: ReactNode;\n network: string;\n dappName: string;\n activeAccount?: MaybeAddress;\n setActiveAccount?: (address: MaybeAddress) => void;\n onExtensionEnabled?: (id: string) => void;\n}\n\nexport interface HandleImportExtension {\n newAccounts: ExtensionAccount[];\n meta: {\n accountsToRemove: ExtensionAccount[];\n removedActiveAccount: MaybeAddress;\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/ExtensionAccountsProvider/types.ts"],"names":[],"mappings":"","file":"types.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport { ReactNode } from \"react\";\nimport { ExtensionAccount } from \"../ExtensionsProvider/types\";\nimport { ImportedAccount, MaybeAddress } from \"../types\";\nimport { Sync } from \"@w3ux/types\";\n\nexport interface ExtensionAccountsContextInterface {\n connectExtensionAccounts: (id?: string) => Promise<boolean>;\n extensionAccountsSynced: Sync;\n getExtensionAccounts: (ss58: number) => ImportedAccount[];\n}\n\nexport interface ExtensionAccountsProviderProps {\n children: ReactNode;\n network: string;\n dappName: string;\n activeAccount?: MaybeAddress;\n setActiveAccount?: (address: MaybeAddress) => void;\n onExtensionEnabled?: (id: string) => void;\n}\n\nexport interface HandleImportExtension {\n newAccounts: ExtensionAccount[];\n meta: {\n accountsToRemove: ExtensionAccount[];\n removedActiveAccount: MaybeAddress;\n };\n}\n"]}
@@ -1,65 +1,45 @@
1
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
- if (ar || !(i in from)) {
4
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
- ar[i] = from[i];
6
- }
7
- }
8
- return to.concat(ar || Array.prototype.slice.call(from));
9
- };
10
1
  import Keyring from "@polkadot/keyring";
11
2
  import { isValidAddress } from "@w3ux/utils";
12
3
  import { getActiveAccountLocal, getInExternalAccounts } from "./utils";
13
4
  import { DEFAULT_SS58, defaultHandleImportExtension } from "./defaults";
14
- export var useImportExtension = function () {
15
- var handleImportExtension = function (id, currentAccounts, signer, newAccounts, network) {
16
- var _a;
5
+ export const useImportExtension = () => {
6
+ const handleImportExtension = (id, currentAccounts, signer, newAccounts, network) => {
17
7
  if (!newAccounts.length) {
18
8
  return defaultHandleImportExtension;
19
9
  }
20
- var keyring = new Keyring();
10
+ const keyring = new Keyring();
21
11
  keyring.setSS58Format(DEFAULT_SS58);
22
- newAccounts = newAccounts.filter(function (_a) {
23
- var address = _a.address;
24
- return isValidAddress(address);
25
- });
26
- newAccounts.map(function (account) {
27
- var address = keyring.addFromAddress(account.address).address;
12
+ newAccounts = newAccounts.filter(({ address }) => isValidAddress(address));
13
+ newAccounts.map((account) => {
14
+ const { address } = keyring.addFromAddress(account.address);
28
15
  account.address = address;
29
16
  return account;
30
17
  });
31
- var inExternal = getInExternalAccounts(newAccounts, network);
32
- var removedAccounts = currentAccounts
33
- .filter(function (j) { return j.source === id; })
34
- .filter(function (j) { return !newAccounts.find(function (i) { return i.address === j.address; }); });
35
- var removedActiveAccount = ((_a = removedAccounts.find(function (_a) {
36
- var address = _a.address;
37
- return address === getActiveAccountLocal(network);
38
- })) === null || _a === void 0 ? void 0 : _a.address) || null;
39
- newAccounts = newAccounts.filter(function (_a) {
40
- var address = _a.address;
41
- return !currentAccounts.find(function (j) { return j.address === address && j.source !== "external"; });
42
- });
43
- newAccounts = newAccounts.map(function (_a) {
44
- var address = _a.address, name = _a.name;
45
- return ({
46
- address: address,
47
- name: name,
48
- source: id,
49
- signer: signer,
50
- });
51
- });
18
+ const inExternal = getInExternalAccounts(newAccounts, network);
19
+ const removedAccounts = currentAccounts
20
+ .filter((j) => j.source === id)
21
+ .filter((j) => !newAccounts.find((i) => i.address === j.address));
22
+ const removedActiveAccount = removedAccounts.find(({ address }) => address === getActiveAccountLocal(network))?.address || null;
23
+ newAccounts = newAccounts.filter(({ address }) => !currentAccounts.find((j) => j.address === address && j.source !== "external"));
24
+ newAccounts = newAccounts.map(({ address, name }) => ({
25
+ address,
26
+ name,
27
+ source: id,
28
+ signer,
29
+ }));
52
30
  return {
53
- newAccounts: newAccounts,
31
+ newAccounts,
54
32
  meta: {
55
- accountsToRemove: __spreadArray(__spreadArray([], inExternal, true), removedAccounts, true),
56
- removedActiveAccount: removedActiveAccount,
33
+ accountsToRemove: [...inExternal, ...removedAccounts],
34
+ removedActiveAccount,
57
35
  },
58
36
  };
59
37
  };
60
38
  return {
61
- handleImportExtension: handleImportExtension,
39
+ handleImportExtension,
62
40
  };
63
41
  };
64
42
 
43
+ //# sourceMappingURL=useImportExtension.js.map
65
44
 
45
+ //# sourceMappingURL=useImportExtension.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ExtensionAccountsProvider/useImportExtension.tsx"],"names":[],"mappings":"AAAA;wCACwC;;;;;;;;;;AAExC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAGxE,MAAM,CAAC,IAAM,kBAAkB,GAAG;IAChC,2CAA2C;IAC3C,EAAE;IACF,0DAA0D;IAC1D,IAAM,qBAAqB,GAAG,UAC5B,EAAU,EACV,eAAmC,EACnC,MAAmB,EACnB,WAA+B,EAC/B,OAAe;;QAEf,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,4BAA4B,CAAC;QACtC,CAAC;QAED,IAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAEpC,qEAAqE;QACrE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,UAAC,EAAW;gBAAT,OAAO,aAAA;YAAO,OAAA,cAAc,CAAC,OAAO,CAAC;QAAvB,CAAuB,CAAC,CAAC;QAE3E,oDAAoD;QACpD,WAAW,CAAC,GAAG,CAAC,UAAC,OAAO;YACd,IAAA,OAAO,GAAK,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,QAA5C,CAA6C;YAC5D,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,IAAM,UAAU,GAAG,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE/D,gEAAgE;QAChE,IAAM,eAAe,GAAG,eAAe;aACpC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,EAAE,EAAf,CAAe,CAAC;aAC9B,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,EAAvB,CAAuB,CAAC,EAAjD,CAAiD,CAAC,CAAC;QAEpE,iEAAiE;QACjE,IAAM,oBAAoB,GACxB,CAAA,MAAA,eAAe,CAAC,IAAI,CAClB,UAAC,EAAW;gBAAT,OAAO,aAAA;YAAO,OAAA,OAAO,KAAK,qBAAqB,CAAC,OAAO,CAAC;QAA1C,CAA0C,CAC5D,0CAAE,OAAO,KAAI,IAAI,CAAC;QAErB,2FAA2F;QAC3F,WAAW,GAAG,WAAW,CAAC,MAAM,CAC9B,UAAC,EAAW;gBAAT,OAAO,aAAA;YACR,OAAA,CAAC,eAAe,CAAC,IAAI,CACnB,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAhD,CAAgD,CACxD;QAFD,CAEC,CACJ,CAAC;QAEF,8BAA8B;QAC9B,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,UAAC,EAAiB;gBAAf,OAAO,aAAA,EAAE,IAAI,UAAA;YAAO,OAAA,CAAC;gBACpD,OAAO,SAAA;gBACP,IAAI,MAAA;gBACJ,MAAM,EAAE,EAAE;gBACV,MAAM,QAAA;aACP,CAAC;QALmD,CAKnD,CAAC,CAAC;QAEJ,OAAO;YACL,WAAW,aAAA;YACX,IAAI,EAAE;gBACJ,gBAAgB,kCAAM,UAAU,SAAK,eAAe,OAAC;gBACrD,oBAAoB,sBAAA;aACrB;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,qBAAqB,uBAAA;KACtB,CAAC;AACJ,CAAC,CAAC","file":"useImportExtension.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport Keyring from \"@polkadot/keyring\";\nimport { isValidAddress } from \"@w3ux/utils\";\nimport type { ExtensionAccount } from \"../ExtensionsProvider/types\";\nimport { HandleImportExtension } from \"./types\";\nimport { getActiveAccountLocal, getInExternalAccounts } from \"./utils\";\nimport { DEFAULT_SS58, defaultHandleImportExtension } from \"./defaults\";\nimport { AnyFunction } from \"@w3ux/types\";\n\nexport const useImportExtension = () => {\n // Handles importing of extension accounts.\n //\n // Gets accounts to be imported and commits them to state.\n const handleImportExtension = (\n id: string,\n currentAccounts: ExtensionAccount[],\n signer: AnyFunction,\n newAccounts: ExtensionAccount[],\n network: string\n ): HandleImportExtension => {\n if (!newAccounts.length) {\n return defaultHandleImportExtension;\n }\n\n const keyring = new Keyring();\n keyring.setSS58Format(DEFAULT_SS58);\n\n // Remove accounts that do not contain correctly formatted addresses.\n newAccounts = newAccounts.filter(({ address }) => isValidAddress(address));\n\n // Reformat addresses to ensure default ss58 format.\n newAccounts.map((account) => {\n const { address } = keyring.addFromAddress(account.address);\n account.address = address;\n return account;\n });\n\n // Remove `newAccounts` from local external accounts if present.\n const inExternal = getInExternalAccounts(newAccounts, network);\n\n // Find any accounts that have been removed from this extension.\n const removedAccounts = currentAccounts\n .filter((j) => j.source === id)\n .filter((j) => !newAccounts.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)\n )?.address || null;\n\n // Remove accounts that have already been added to `currentAccounts` via another extension.\n newAccounts = newAccounts.filter(\n ({ address }) =>\n !currentAccounts.find(\n (j) => j.address === address && j.source !== \"external\"\n )\n );\n\n // Format accounts properties.\n newAccounts = newAccounts.map(({ address, name }) => ({\n address,\n name,\n source: id,\n signer,\n }));\n\n return {\n newAccounts,\n meta: {\n accountsToRemove: [...inExternal, ...removedAccounts],\n removedActiveAccount,\n },\n };\n };\n\n return {\n handleImportExtension,\n };\n};\n"]}
1
+ {"version":3,"sources":["../src/ExtensionAccountsProvider/useImportExtension.tsx"],"names":[],"mappings":"AAGA,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAGxE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAIrC,MAAM,qBAAqB,GAAG,CAC5B,EAAU,EACV,eAAmC,EACnC,MAAmB,EACnB,WAA+B,EAC/B,OAAe,EACQ,EAAE;QACzB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,4BAA4B,CAAC;QACtC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAGpC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QAG3E,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5D,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QAGH,MAAM,UAAU,GAAG,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAG/D,MAAM,eAAe,GAAG,eAAe;aACpC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAGpE,MAAM,oBAAoB,GACxB,eAAe,CAAC,IAAI,CAClB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,qBAAqB,CAAC,OAAO,CAAC,CAC5D,EAAE,OAAO,IAAI,IAAI,CAAC;QAGrB,WAAW,GAAG,WAAW,CAAC,MAAM,CAC9B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACd,CAAC,eAAe,CAAC,IAAI,CACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CACxD,CACJ,CAAC;QAGF,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACpD,OAAO;YACP,IAAI;YACJ,MAAM,EAAE,EAAE;YACV,MAAM;SACP,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,WAAW;YACX,IAAI,EAAE;gBACJ,gBAAgB,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,eAAe,CAAC;gBACrD,oBAAoB;aACrB;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,qBAAqB;KACtB,CAAC;AACJ,CAAC,CAAC","file":"useImportExtension.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport Keyring from \"@polkadot/keyring\";\nimport { isValidAddress } from \"@w3ux/utils\";\nimport type { ExtensionAccount } from \"../ExtensionsProvider/types\";\nimport { HandleImportExtension } from \"./types\";\nimport { getActiveAccountLocal, getInExternalAccounts } from \"./utils\";\nimport { DEFAULT_SS58, defaultHandleImportExtension } from \"./defaults\";\nimport { AnyFunction } from \"@w3ux/types\";\n\nexport const useImportExtension = () => {\n // Handles importing of extension accounts.\n //\n // Gets accounts to be imported and commits them to state.\n const handleImportExtension = (\n id: string,\n currentAccounts: ExtensionAccount[],\n signer: AnyFunction,\n newAccounts: ExtensionAccount[],\n network: string\n ): HandleImportExtension => {\n if (!newAccounts.length) {\n return defaultHandleImportExtension;\n }\n\n const keyring = new Keyring();\n keyring.setSS58Format(DEFAULT_SS58);\n\n // Remove accounts that do not contain correctly formatted addresses.\n newAccounts = newAccounts.filter(({ address }) => isValidAddress(address));\n\n // Reformat addresses to ensure default ss58 format.\n newAccounts.map((account) => {\n const { address } = keyring.addFromAddress(account.address);\n account.address = address;\n return account;\n });\n\n // Remove `newAccounts` from local external accounts if present.\n const inExternal = getInExternalAccounts(newAccounts, network);\n\n // Find any accounts that have been removed from this extension.\n const removedAccounts = currentAccounts\n .filter((j) => j.source === id)\n .filter((j) => !newAccounts.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)\n )?.address || null;\n\n // Remove accounts that have already been added to `currentAccounts` via another extension.\n newAccounts = newAccounts.filter(\n ({ address }) =>\n !currentAccounts.find(\n (j) => j.address === address && j.source !== \"external\"\n )\n );\n\n // Format accounts properties.\n newAccounts = newAccounts.map(({ address, name }) => ({\n address,\n name,\n source: id,\n signer,\n }));\n\n return {\n newAccounts,\n meta: {\n accountsToRemove: [...inExternal, ...removedAccounts],\n removedActiveAccount,\n },\n };\n };\n\n return {\n handleImportExtension,\n };\n};\n"]}
@@ -1,37 +1,34 @@
1
1
  import { localStorageOrDefault } from "@w3ux/utils";
2
2
  import Keyring from "@polkadot/keyring";
3
3
  import { DEFAULT_SS58 } from "./defaults";
4
- export var getActiveAccountLocal = function (network) {
5
- var keyring = new Keyring();
4
+ export const getActiveAccountLocal = (network) => {
5
+ const keyring = new Keyring();
6
6
  keyring.setSS58Format(DEFAULT_SS58);
7
- var account = localStorageOrDefault("".concat(network, "_active_account"), null);
7
+ let account = localStorageOrDefault(`${network}_active_account`, null);
8
8
  if (account !== null) {
9
9
  account = keyring.addFromAddress(account).address;
10
10
  }
11
11
  return account;
12
12
  };
13
- export var getActiveExtensionAccount = function (network, accounts) {
14
- var _a;
15
- return (_a = accounts.find(function (_a) {
16
- var address = _a.address;
17
- return address === getActiveAccountLocal(network);
18
- })) !== null && _a !== void 0 ? _a : null;
19
- };
20
- export var connectActiveExtensionAccount = function (account, callback) {
13
+ export const getActiveExtensionAccount = (network, accounts) => accounts.find(({ address }) => address === getActiveAccountLocal(network)) ??
14
+ null;
15
+ export const connectActiveExtensionAccount = (account, callback) => {
21
16
  if (account !== null) {
22
17
  callback(account);
23
18
  }
24
19
  };
25
- export var getInExternalAccounts = function (accounts, network) {
26
- var localExternalAccounts = getLocalExternalAccounts(network);
27
- return (localExternalAccounts.filter(function (a) { return (accounts || []).find(function (b) { return b.address === a.address; }) !== undefined; }) || []);
20
+ export const getInExternalAccounts = (accounts, network) => {
21
+ const localExternalAccounts = getLocalExternalAccounts(network);
22
+ return (localExternalAccounts.filter((a) => (accounts || []).find((b) => b.address === a.address) !== undefined) || []);
28
23
  };
29
- export var getLocalExternalAccounts = function (network) {
30
- var localAccounts = localStorageOrDefault("external_accounts", [], true);
24
+ export const getLocalExternalAccounts = (network) => {
25
+ let localAccounts = localStorageOrDefault("external_accounts", [], true);
31
26
  if (network) {
32
- localAccounts = localAccounts.filter(function (l) { return l.network === network; });
27
+ localAccounts = localAccounts.filter((l) => l.network === network);
33
28
  }
34
29
  return localAccounts;
35
30
  };
36
31
 
32
+ //# sourceMappingURL=utils.js.map
37
33
 
34
+ //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ExtensionAccountsProvider/utils.ts"],"names":[],"mappings":"AAAA;wCACwC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C;;+DAE+D;AAE/D,4CAA4C;AAC5C,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAC,OAAe;IACnD,IAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAEpC,IAAI,OAAO,GAAG,qBAAqB,CAAC,UAAG,OAAO,oBAAiB,EAAE,IAAI,CAAC,CAAC;IACvE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IACpD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,IAAM,yBAAyB,GAAG,UACvC,OAAe,EACf,QAA4B;;IAE5B,OAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,UAAC,EAAW;YAAT,OAAO,aAAA;QAAO,OAAA,OAAO,KAAK,qBAAqB,CAAC,OAAO,CAAC;IAA1C,CAA0C,CAAC,mCAC1E,IAAI,CAAA;CAAA,CAAC;AAEP,2EAA2E;AAC3E,MAAM,CAAC,IAAM,6BAA6B,GAAG,UAC3C,OAAgC,EAChC,QAAqB;IAErB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAEF;;+DAE+D;AAE/D,yDAAyD;AACzD,MAAM,CAAC,IAAM,qBAAqB,GAAG,UACnC,QAA4B,EAC5B,OAAe;IAEf,IAAM,qBAAqB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAEhE,OAAO,CACL,qBAAqB,CAAC,MAAM,CAC1B,UAAC,CAAC,IAAK,OAAA,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,EAAvB,CAAuB,CAAC,KAAK,SAAS,EAAnE,CAAmE,CAC3E,IAAI,EAAE,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,IAAM,wBAAwB,GAAG,UAAC,OAAgB;IACvD,IAAI,aAAa,GAAG,qBAAqB,CACvC,mBAAmB,EACnB,EAAE,EACF,IAAI,CACgB,CAAC;IACvB,IAAI,OAAO,EAAE,CAAC;QACZ,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,KAAK,OAAO,EAArB,CAAqB,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC","file":"utils.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport { localStorageOrDefault } from \"@w3ux/utils\";\nimport Keyring from \"@polkadot/keyring\";\nimport { ExtensionAccount } from \"../ExtensionsProvider/types\";\nimport { ExternalAccount } from \"../types\";\nimport { DEFAULT_SS58 } from \"./defaults\";\nimport { AnyFunction } from \"@w3ux/types\";\n\n/*------------------------------------------------------------\n Active account utils.\n ------------------------------------------------------------*/\n\n// Gets local `active_acount` for a network.\nexport const getActiveAccountLocal = (network: string) => {\n const keyring = new Keyring();\n keyring.setSS58Format(DEFAULT_SS58);\n\n let account = localStorageOrDefault(`${network}_active_account`, null);\n if (account !== null) {\n account = keyring.addFromAddress(account).address;\n }\n\n return account;\n};\n\n// Checks if the local active account is the provided accounts.\nexport const getActiveExtensionAccount = (\n network: string,\n accounts: ExtensionAccount[]\n) =>\n accounts.find(({ address }) => address === getActiveAccountLocal(network)) ??\n null;\n\n// Connects to active account, and calls an optional callback, if provided.\nexport const connectActiveExtensionAccount = (\n account: ExtensionAccount | null,\n callback: AnyFunction\n) => {\n if (account !== null) {\n callback(account);\n }\n};\n\n/*------------------------------------------------------------\n External account utils.\n ------------------------------------------------------------*/\n\n// Gets accounts that exist in local `external_accounts`.\nexport const getInExternalAccounts = (\n accounts: ExtensionAccount[],\n network: string\n) => {\n const localExternalAccounts = getLocalExternalAccounts(network);\n\n return (\n localExternalAccounts.filter(\n (a) => (accounts || []).find((b) => b.address === a.address) !== undefined\n ) || []\n );\n};\n\n// Gets local external accounts for a network.\nexport const getLocalExternalAccounts = (network?: string) => {\n let localAccounts = localStorageOrDefault<ExternalAccount[]>(\n \"external_accounts\",\n [],\n true\n ) as ExternalAccount[];\n if (network) {\n localAccounts = localAccounts.filter((l) => l.network === network);\n }\n return localAccounts;\n};\n"]}
1
+ {"version":3,"sources":["../src/ExtensionAccountsProvider/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAE,EAAE;IACvD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAEpC,IAAI,OAAO,GAAG,qBAAqB,CAAC,GAAG,OAAO,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACvE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IACpD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,OAAe,EACf,QAA4B,EAC5B,EAAE,CACF,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC1E,IAAI,CAAC;AAGP,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,OAAgC,EAChC,QAAqB,EACrB,EAAE;IACF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAA4B,EAC5B,OAAe,EACf,EAAE;IACF,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAEhE,OAAO,CACL,qBAAqB,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,CAC3E,IAAI,EAAE,CACR,CAAC;AACJ,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC3D,IAAI,aAAa,GAAG,qBAAqB,CACvC,mBAAmB,EACnB,EAAE,EACF,IAAI,CACgB,CAAC;IACvB,IAAI,OAAO,EAAE,CAAC;QACZ,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC","file":"utils.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport { localStorageOrDefault } from \"@w3ux/utils\";\nimport Keyring from \"@polkadot/keyring\";\nimport { ExtensionAccount } from \"../ExtensionsProvider/types\";\nimport { ExternalAccount } from \"../types\";\nimport { DEFAULT_SS58 } from \"./defaults\";\nimport { AnyFunction } from \"@w3ux/types\";\n\n/*------------------------------------------------------------\n Active account utils.\n ------------------------------------------------------------*/\n\n// Gets local `active_acount` for a network.\nexport const getActiveAccountLocal = (network: string) => {\n const keyring = new Keyring();\n keyring.setSS58Format(DEFAULT_SS58);\n\n let account = localStorageOrDefault(`${network}_active_account`, null);\n if (account !== null) {\n account = keyring.addFromAddress(account).address;\n }\n\n return account;\n};\n\n// Checks if the local active account is the provided accounts.\nexport const getActiveExtensionAccount = (\n network: string,\n accounts: ExtensionAccount[]\n) =>\n accounts.find(({ address }) => address === getActiveAccountLocal(network)) ??\n null;\n\n// Connects to active account, and calls an optional callback, if provided.\nexport const connectActiveExtensionAccount = (\n account: ExtensionAccount | null,\n callback: AnyFunction\n) => {\n if (account !== null) {\n callback(account);\n }\n};\n\n/*------------------------------------------------------------\n External account utils.\n ------------------------------------------------------------*/\n\n// Gets accounts that exist in local `external_accounts`.\nexport const getInExternalAccounts = (\n accounts: ExtensionAccount[],\n network: string\n) => {\n const localExternalAccounts = getLocalExternalAccounts(network);\n\n return (\n localExternalAccounts.filter(\n (a) => (accounts || []).find((b) => b.address === a.address) !== undefined\n ) || []\n );\n};\n\n// Gets local external accounts for a network.\nexport const getLocalExternalAccounts = (network?: string) => {\n let localAccounts = localStorageOrDefault<ExternalAccount[]>(\n \"external_accounts\",\n [],\n true\n ) as ExternalAccount[];\n if (network) {\n localAccounts = localAccounts.filter((l) => l.network === network);\n }\n return localAccounts;\n};\n"]}
@@ -1,11 +1,13 @@
1
- export var defaultExtensionsContext = {
1
+ export const defaultExtensionsContext = {
2
2
  checkingInjectedWeb3: false,
3
3
  extensionsStatus: {},
4
- setExtensionStatus: function (id, status) { },
5
- removeExtensionStatus: function (id) { },
6
- extensionInstalled: function (id) { return false; },
7
- extensionCanConnect: function (id) { return false; },
8
- extensionHasFeature: function (id, feature) { return false; },
4
+ setExtensionStatus: (id, status) => { },
5
+ removeExtensionStatus: (id) => { },
6
+ extensionInstalled: (id) => false,
7
+ extensionCanConnect: (id) => false,
8
+ extensionHasFeature: (id, feature) => false,
9
9
  };
10
10
 
11
+ //# sourceMappingURL=defaults.js.map
11
12
 
13
+ //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ExtensionsProvider/defaults.ts"],"names":[],"mappings":"AAAA;wCACwC;AACxC,6GAA6G;AAI7G,MAAM,CAAC,IAAM,wBAAwB,GAA+B;IAClE,oBAAoB,EAAE,KAAK;IAC3B,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,UAAC,EAAE,EAAE,MAAM,IAAM,CAAC;IACtC,qBAAqB,EAAE,UAAC,EAAE,IAAM,CAAC;IACjC,kBAAkB,EAAE,UAAC,EAAE,IAAK,OAAA,KAAK,EAAL,CAAK;IACjC,mBAAmB,EAAE,UAAC,EAAE,IAAK,OAAA,KAAK,EAAL,CAAK;IAClC,mBAAmB,EAAE,UAAC,EAAE,EAAE,OAAO,IAAK,OAAA,KAAK,EAAL,CAAK;CAC5C,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 type { ExtensionsContextInterface } from \"./types\";\n\nexport const defaultExtensionsContext: ExtensionsContextInterface = {\n checkingInjectedWeb3: false,\n extensionsStatus: {},\n setExtensionStatus: (id, status) => {},\n removeExtensionStatus: (id) => {},\n extensionInstalled: (id) => false,\n extensionCanConnect: (id) => false,\n extensionHasFeature: (id, feature) => false,\n};\n"]}
1
+ {"version":3,"sources":["../src/ExtensionsProvider/defaults.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,wBAAwB,GAA+B;IAClE,oBAAoB,EAAE,KAAK;IAC3B,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,GAAE,CAAC;IACtC,qBAAqB,EAAE,CAAC,EAAE,EAAE,EAAE,GAAE,CAAC;IACjC,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK;IACjC,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK;IAClC,mBAAmB,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK;CAC5C,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 type { ExtensionsContextInterface } from \"./types\";\n\nexport const defaultExtensionsContext: ExtensionsContextInterface = {\n checkingInjectedWeb3: false,\n extensionsStatus: {},\n setExtensionStatus: (id, status) => {},\n removeExtensionStatus: (id) => {},\n extensionInstalled: (id) => false,\n extensionCanConnect: (id) => false,\n extensionHasFeature: (id, feature) => false,\n};\n"]}