@w3ux/react-connect-kit 0.1.14 → 0.1.16

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,9 +1,10 @@
1
1
  export var defaultLedgerAccountsContext = {
2
- ledgerAccountExists: function (address) { return false; },
3
- addLedgerAccount: function (address, index, callback) { return null; },
4
- removeLedgerAccount: function (address, callback) { },
5
- renameLedgerAccount: function (address, newName) { },
6
- getLedgerAccount: function (address) { return null; },
2
+ ledgerAccountExists: function (network, address) { return false; },
3
+ addLedgerAccount: function (network, address, index, callback) { return null; },
4
+ removeLedgerAccount: function (network, address, callback) { },
5
+ renameLedgerAccount: function (network, address, newName) { },
6
+ getLedgerAccount: function (network, address) { return null; },
7
+ getLedgerAccounts: function (network) { return []; },
7
8
  ledgerAccounts: [],
8
9
  };
9
10
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/LedgerAccountsProvider/defaults.ts"],"names":[],"mappings":"AAAA;wCACwC;AACxC,6GAA6G;AAI7G,MAAM,CAAC,IAAM,4BAA4B,GAAmC;IAC1E,mBAAmB,EAAE,UAAC,OAAO,IAAK,OAAA,KAAK,EAAL,CAAK;IACvC,gBAAgB,EAAE,UAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,IAAK,OAAA,IAAI,EAAJ,CAAI;IACpD,mBAAmB,EAAE,UAAC,OAAO,EAAE,QAAQ,IAAM,CAAC;IAC9C,mBAAmB,EAAE,UAAC,OAAO,EAAE,OAAO,IAAM,CAAC;IAC7C,gBAAgB,EAAE,UAAC,OAAO,IAAK,OAAA,IAAI,EAAJ,CAAI;IACnC,cAAc,EAAE,EAAE;CACnB,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 { LedgerAccountsContextInterface } from \"./types\";\n\nexport const defaultLedgerAccountsContext: LedgerAccountsContextInterface = {\n ledgerAccountExists: (address) => false,\n addLedgerAccount: (address, index, callback) => null,\n removeLedgerAccount: (address, callback) => {},\n renameLedgerAccount: (address, newName) => {},\n getLedgerAccount: (address) => null,\n ledgerAccounts: [],\n};\n"]}
1
+ {"version":3,"sources":["../src/LedgerAccountsProvider/defaults.ts"],"names":[],"mappings":"AAAA;wCACwC;AACxC,6GAA6G;AAI7G,MAAM,CAAC,IAAM,4BAA4B,GAAmC;IAC1E,mBAAmB,EAAE,UAAC,OAAO,EAAE,OAAO,IAAK,OAAA,KAAK,EAAL,CAAK;IAChD,gBAAgB,EAAE,UAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,IAAK,OAAA,IAAI,EAAJ,CAAI;IAC7D,mBAAmB,EAAE,UAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,IAAM,CAAC;IACvD,mBAAmB,EAAE,UAAC,OAAO,EAAE,OAAO,EAAE,OAAO,IAAM,CAAC;IACtD,gBAAgB,EAAE,UAAC,OAAO,EAAE,OAAO,IAAK,OAAA,IAAI,EAAJ,CAAI;IAC5C,iBAAiB,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,EAAF,CAAE;IAClC,cAAc,EAAE,EAAE;CACnB,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 { LedgerAccountsContextInterface } from \"./types\";\n\nexport const defaultLedgerAccountsContext: LedgerAccountsContextInterface = {\n ledgerAccountExists: (network, address) => false,\n addLedgerAccount: (network, address, index, callback) => null,\n removeLedgerAccount: (network, address, callback) => {},\n renameLedgerAccount: (network, address, newName) => {},\n getLedgerAccount: (network, address) => null,\n getLedgerAccounts: (network) => [],\n ledgerAccounts: [],\n};\n"]}
@@ -2,4 +2,4 @@
2
2
  import { LedgerAccountsContextInterface, LedgerAccountsProviderProps } from "./types";
3
3
  export declare const LedgerAccountsContext: import("react").Context<LedgerAccountsContextInterface>;
4
4
  export declare const useLedgerAccounts: () => LedgerAccountsContextInterface;
5
- export declare const LedgerAccountsProvider: ({ children, network, }: LedgerAccountsProviderProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const LedgerAccountsProvider: ({ children, }: LedgerAccountsProviderProps) => import("react/jsx-runtime").JSX.Element;
@@ -23,19 +23,18 @@ import { createContext, useContext, useRef, useState } from "react";
23
23
  import { defaultLedgerAccountsContext } from "./defaults";
24
24
  import { getLocalLedgerAccounts, getLocalLedgerAddresses, isLocalLedgerAccount, renameLocalLedgerAddress, } from "./utils";
25
25
  import { setStateWithRef } from "@w3ux/utils";
26
- import { useEffectIgnoreInitial } from "@w3ux/hooks";
27
26
  export var LedgerAccountsContext = createContext(defaultLedgerAccountsContext);
28
27
  export var useLedgerAccounts = function () { return useContext(LedgerAccountsContext); };
29
28
  export var LedgerAccountsProvider = function (_a) {
30
- var children = _a.children, network = _a.network;
31
- var _b = useState(getLocalLedgerAccounts(network)), ledgerAccounts = _b[0], setLedgerAccountsState = _b[1];
29
+ var children = _a.children;
30
+ var _b = useState(getLocalLedgerAccounts()), ledgerAccounts = _b[0], setLedgerAccountsState = _b[1];
32
31
  var ledgerAccountsRef = useRef(ledgerAccounts);
33
- var ledgerAccountExists = function (address) {
32
+ var ledgerAccountExists = function (network, address) {
34
33
  return !!getLocalLedgerAccounts().find(function (account) {
35
34
  return isLocalLedgerAccount(network, account, address);
36
35
  });
37
36
  };
38
- var addLedgerAccount = function (address, index, callback) {
37
+ var addLedgerAccount = function (network, address, index, callback) {
39
38
  var newLedgerAccounts = getLocalLedgerAccounts();
40
39
  var ledgerAddress = getLocalLedgerAddresses().find(function (a) {
41
40
  return isLocalLedgerAccount(network, a, address);
@@ -61,7 +60,7 @@ export var LedgerAccountsProvider = function (_a) {
61
60
  }
62
61
  return null;
63
62
  };
64
- var removeLedgerAccount = function (address, callback) {
63
+ var removeLedgerAccount = function (network, address, callback) {
65
64
  var newLedgerAccounts = getLocalLedgerAccounts().filter(function (account) {
66
65
  if (account.address !== address) {
67
66
  return true;
@@ -82,7 +81,7 @@ export var LedgerAccountsProvider = function (_a) {
82
81
  callback();
83
82
  }
84
83
  };
85
- var renameLedgerAccount = function (address, newName) {
84
+ var renameLedgerAccount = function (network, address, newName) {
86
85
  var newLedgerAccounts = getLocalLedgerAccounts().map(function (account) {
87
86
  return isLocalLedgerAccount(network, account, address)
88
87
  ? __assign(__assign({}, account), { name: newName }) : account;
@@ -91,7 +90,7 @@ export var LedgerAccountsProvider = function (_a) {
91
90
  localStorage.setItem("ledger_accounts", JSON.stringify(newLedgerAccounts));
92
91
  setStateWithRef(newLedgerAccounts.filter(function (account) { return account.network === network; }), setLedgerAccountsState, ledgerAccountsRef);
93
92
  };
94
- var getLedgerAccount = function (address) {
93
+ var getLedgerAccount = function (network, address) {
95
94
  var localLedgerAccounts = getLocalLedgerAccounts();
96
95
  if (!localLedgerAccounts) {
97
96
  return null;
@@ -100,15 +99,16 @@ export var LedgerAccountsProvider = function (_a) {
100
99
  return isLocalLedgerAccount(network, account, address);
101
100
  }) || null);
102
101
  };
103
- useEffectIgnoreInitial(function () {
104
- setStateWithRef(getLocalLedgerAccounts(network), setLedgerAccountsState, ledgerAccountsRef);
105
- }, [network]);
102
+ var getLedgerAccounts = function (network) {
103
+ return ledgerAccountsRef.current.filter(function (a) { return a.network === network; });
104
+ };
106
105
  return (_jsx(LedgerAccountsContext.Provider, { value: {
107
106
  ledgerAccountExists: ledgerAccountExists,
108
107
  getLedgerAccount: getLedgerAccount,
109
108
  addLedgerAccount: addLedgerAccount,
110
109
  removeLedgerAccount: removeLedgerAccount,
111
110
  renameLedgerAccount: renameLedgerAccount,
111
+ getLedgerAccounts: getLedgerAccounts,
112
112
  ledgerAccounts: ledgerAccountsRef.current,
113
113
  }, children: children }));
114
114
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/LedgerAccountsProvider/index.tsx"],"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 { createContext, useContext, useRef, useState } from \"react\";\nimport { defaultLedgerAccountsContext } from \"./defaults\";\nimport {\n LedgerAccountsContextInterface,\n LedgerAccountsProviderProps,\n} from \"./types\";\nimport { LedgerAccount } from \"../types\";\nimport {\n getLocalLedgerAccounts,\n getLocalLedgerAddresses,\n isLocalLedgerAccount,\n renameLocalLedgerAddress,\n} from \"./utils\";\nimport { setStateWithRef } from \"@w3ux/utils\";\nimport { useEffectIgnoreInitial } from \"@w3ux/hooks\";\n\nexport const LedgerAccountsContext =\n createContext<LedgerAccountsContextInterface>(defaultLedgerAccountsContext);\n\nexport const useLedgerAccounts = () => useContext(LedgerAccountsContext);\n\nexport const LedgerAccountsProvider = ({\n children,\n network,\n}: LedgerAccountsProviderProps) => {\n // Store the fetched ledger accounts.\n const [ledgerAccounts, setLedgerAccountsState] = useState<LedgerAccount[]>(\n getLocalLedgerAccounts(network)\n );\n const ledgerAccountsRef = useRef(ledgerAccounts);\n\n // Check if a Ledger address exists in imported addresses.\n const ledgerAccountExists = (address: string) =>\n !!getLocalLedgerAccounts().find((account) =>\n isLocalLedgerAccount(network, account, address)\n );\n\n // Adds a ledger address to the list of fetched addresses.\n const addLedgerAccount = (\n address: string,\n index: number,\n callback?: () => void\n ) => {\n let newLedgerAccounts = getLocalLedgerAccounts();\n\n const ledgerAddress = getLocalLedgerAddresses().find((a) =>\n isLocalLedgerAccount(network, a, address)\n );\n\n if (\n ledgerAddress &&\n !newLedgerAccounts.find((account) =>\n isLocalLedgerAccount(network, account, address)\n )\n ) {\n const newAccount = {\n address,\n network,\n name: ledgerAddress.name,\n source: \"ledger\",\n index,\n };\n\n // Update the full list of local ledger accounts with new entry.\n newLedgerAccounts = [...newLedgerAccounts].concat(newAccount);\n localStorage.setItem(\n \"ledger_accounts\",\n JSON.stringify(newLedgerAccounts)\n );\n\n // Store only those accounts on the current network in state.\n setStateWithRef(\n newLedgerAccounts.filter((account) => account.network === network),\n setLedgerAccountsState,\n ledgerAccountsRef\n );\n\n // Handle optional callback function.\n if (typeof callback === \"function\") {\n callback();\n }\n return newAccount;\n }\n return null;\n };\n\n // Removes a Ledger account from state and local storage.\n const removeLedgerAccount = (address: string, callback?: () => void) => {\n // Remove th account from local storage records\n const newLedgerAccounts = getLocalLedgerAccounts().filter((account) => {\n if (account.address !== address) {\n return true;\n }\n if (account.network !== network) {\n return true;\n }\n return false;\n });\n if (!newLedgerAccounts.length) {\n localStorage.removeItem(\"ledger_accounts\");\n } else {\n localStorage.setItem(\n \"ledger_accounts\",\n JSON.stringify(newLedgerAccounts)\n );\n }\n\n // Update state with the new list of accounts.\n setStateWithRef(\n newLedgerAccounts.filter((account) => account.network === network),\n setLedgerAccountsState,\n ledgerAccountsRef\n );\n\n // Handle optional callback function.\n if (typeof callback === \"function\") {\n callback();\n }\n };\n\n // Renames an imported ledger account.\n const renameLedgerAccount = (address: string, newName: string) => {\n // Update the local storage records.\n const newLedgerAccounts = getLocalLedgerAccounts().map((account) =>\n isLocalLedgerAccount(network, account, address)\n ? {\n ...account,\n name: newName,\n }\n : account\n );\n renameLocalLedgerAddress(address, newName, network);\n localStorage.setItem(\"ledger_accounts\", JSON.stringify(newLedgerAccounts));\n\n // Update state with the new list of accounts.\n setStateWithRef(\n newLedgerAccounts.filter((account) => account.network === network),\n setLedgerAccountsState,\n ledgerAccountsRef\n );\n };\n\n // Gets an imported address along with its Ledger metadata.\n const getLedgerAccount = (address: string) => {\n const localLedgerAccounts = getLocalLedgerAccounts();\n if (!localLedgerAccounts) {\n return null;\n }\n return (\n localLedgerAccounts.find((account) =>\n isLocalLedgerAccount(network, account, address)\n ) || null\n );\n };\n\n // Refresh imported ledger accounts on network change.\n useEffectIgnoreInitial(() => {\n setStateWithRef(\n getLocalLedgerAccounts(network),\n setLedgerAccountsState,\n ledgerAccountsRef\n );\n }, [network]);\n\n return (\n <LedgerAccountsContext.Provider\n value={{\n ledgerAccountExists,\n getLedgerAccount,\n addLedgerAccount,\n removeLedgerAccount,\n renameLedgerAccount,\n ledgerAccounts: ledgerAccountsRef.current,\n }}\n >\n {children}\n </LedgerAccountsContext.Provider>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/LedgerAccountsProvider/index.tsx"],"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 { createContext, useContext, useRef, useState } from \"react\";\nimport { defaultLedgerAccountsContext } from \"./defaults\";\nimport {\n LedgerAccountsContextInterface,\n LedgerAccountsProviderProps,\n} from \"./types\";\nimport { LedgerAccount } from \"../types\";\nimport {\n getLocalLedgerAccounts,\n getLocalLedgerAddresses,\n isLocalLedgerAccount,\n renameLocalLedgerAddress,\n} from \"./utils\";\nimport { setStateWithRef } from \"@w3ux/utils\";\n\nexport const LedgerAccountsContext =\n createContext<LedgerAccountsContextInterface>(defaultLedgerAccountsContext);\n\nexport const useLedgerAccounts = () => useContext(LedgerAccountsContext);\n\nexport const LedgerAccountsProvider = ({\n children,\n}: LedgerAccountsProviderProps) => {\n // Store the fetched ledger accounts.\n const [ledgerAccounts, setLedgerAccountsState] = useState<LedgerAccount[]>(\n getLocalLedgerAccounts()\n );\n const ledgerAccountsRef = useRef(ledgerAccounts);\n\n // Check if a Ledger address exists in imported addresses.\n const ledgerAccountExists = (network: string, address: string) =>\n !!getLocalLedgerAccounts().find((account) =>\n isLocalLedgerAccount(network, account, address)\n );\n\n // Adds a ledger address to the list of fetched addresses.\n const addLedgerAccount = (\n network: string,\n address: string,\n index: number,\n callback?: () => void\n ) => {\n let newLedgerAccounts = getLocalLedgerAccounts();\n\n const ledgerAddress = getLocalLedgerAddresses().find((a) =>\n isLocalLedgerAccount(network, a, address)\n );\n\n if (\n ledgerAddress &&\n !newLedgerAccounts.find((account) =>\n isLocalLedgerAccount(network, account, address)\n )\n ) {\n const newAccount = {\n address,\n network,\n name: ledgerAddress.name,\n source: \"ledger\",\n index,\n };\n\n // Update the full list of local ledger accounts with new entry.\n newLedgerAccounts = [...newLedgerAccounts].concat(newAccount);\n localStorage.setItem(\n \"ledger_accounts\",\n JSON.stringify(newLedgerAccounts)\n );\n\n // Store only those accounts on the current network in state.\n setStateWithRef(\n newLedgerAccounts.filter((account) => account.network === network),\n setLedgerAccountsState,\n ledgerAccountsRef\n );\n\n // Handle optional callback function.\n if (typeof callback === \"function\") {\n callback();\n }\n return newAccount;\n }\n return null;\n };\n\n // Removes a Ledger account from state and local storage.\n const removeLedgerAccount = (\n network: string,\n address: string,\n callback?: () => void\n ) => {\n // Remove th account from local storage records\n const newLedgerAccounts = getLocalLedgerAccounts().filter((account) => {\n if (account.address !== address) {\n return true;\n }\n if (account.network !== network) {\n return true;\n }\n return false;\n });\n if (!newLedgerAccounts.length) {\n localStorage.removeItem(\"ledger_accounts\");\n } else {\n localStorage.setItem(\n \"ledger_accounts\",\n JSON.stringify(newLedgerAccounts)\n );\n }\n\n // Update state with the new list of accounts.\n setStateWithRef(\n newLedgerAccounts.filter((account) => account.network === network),\n setLedgerAccountsState,\n ledgerAccountsRef\n );\n\n // Handle optional callback function.\n if (typeof callback === \"function\") {\n callback();\n }\n };\n\n // Renames an imported ledger account.\n const renameLedgerAccount = (\n network: string,\n address: string,\n newName: string\n ) => {\n // Update the local storage records.\n const newLedgerAccounts = getLocalLedgerAccounts().map((account) =>\n isLocalLedgerAccount(network, account, address)\n ? {\n ...account,\n name: newName,\n }\n : account\n );\n renameLocalLedgerAddress(address, newName, network);\n localStorage.setItem(\"ledger_accounts\", JSON.stringify(newLedgerAccounts));\n\n // Update state with the new list of accounts.\n setStateWithRef(\n newLedgerAccounts.filter((account) => account.network === network),\n setLedgerAccountsState,\n ledgerAccountsRef\n );\n };\n\n // Gets an imported address along with its Ledger metadata.\n const getLedgerAccount = (network: string, address: string) => {\n const localLedgerAccounts = getLocalLedgerAccounts();\n if (!localLedgerAccounts) {\n return null;\n }\n return (\n localLedgerAccounts.find((account) =>\n isLocalLedgerAccount(network, account, address)\n ) || null\n );\n };\n\n // Gets Ledger accounts for a network.\n const getLedgerAccounts = (network: string) =>\n ledgerAccountsRef.current.filter((a) => a.network === network);\n\n return (\n <LedgerAccountsContext.Provider\n value={{\n ledgerAccountExists,\n getLedgerAccount,\n addLedgerAccount,\n removeLedgerAccount,\n renameLedgerAccount,\n getLedgerAccounts,\n ledgerAccounts: ledgerAccountsRef.current,\n }}\n >\n {children}\n </LedgerAccountsContext.Provider>\n );\n};\n"]}
@@ -1,16 +1,16 @@
1
1
  import { ReactNode } from "react";
2
2
  import { LedgerAccount } from "../types";
3
3
  export interface LedgerAccountsContextInterface {
4
- ledgerAccountExists: (a: string) => boolean;
5
- addLedgerAccount: (address: string, index: number, callback?: () => void) => LedgerAccount | null;
6
- removeLedgerAccount: (address: string, callback?: () => void) => void;
7
- renameLedgerAccount: (address: string, name: string) => void;
8
- getLedgerAccount: (address: string) => LedgerAccount | null;
4
+ ledgerAccountExists: (network: string, a: string) => boolean;
5
+ addLedgerAccount: (network: string, address: string, index: number, callback?: () => void) => LedgerAccount | null;
6
+ removeLedgerAccount: (network: string, address: string, callback?: () => void) => void;
7
+ renameLedgerAccount: (network: string, address: string, name: string) => void;
8
+ getLedgerAccount: (network: string, address: string) => LedgerAccount | null;
9
+ getLedgerAccounts: (network: string) => LedgerAccount[];
9
10
  ledgerAccounts: LedgerAccount[];
10
11
  }
11
12
  export interface LedgerAccountsProviderProps {
12
13
  children: ReactNode;
13
- network: string;
14
14
  }
15
15
  export interface LedgerAddress {
16
16
  address: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/LedgerAccountsProvider/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 { LedgerAccount } from \"../types\";\n\nexport interface LedgerAccountsContextInterface {\n ledgerAccountExists: (a: string) => boolean;\n addLedgerAccount: (\n address: string,\n index: number,\n callback?: () => void\n ) => LedgerAccount | null;\n removeLedgerAccount: (address: string, callback?: () => void) => void;\n renameLedgerAccount: (address: string, name: string) => void;\n getLedgerAccount: (address: string) => LedgerAccount | null;\n ledgerAccounts: LedgerAccount[];\n}\n\nexport interface LedgerAccountsProviderProps {\n children: ReactNode;\n network: string;\n}\n\nexport interface LedgerAddress {\n address: string;\n index: number;\n name: string;\n network: string;\n pubKey: string;\n}\n"]}
1
+ {"version":3,"sources":["../src/LedgerAccountsProvider/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 { LedgerAccount } from \"../types\";\n\nexport interface LedgerAccountsContextInterface {\n ledgerAccountExists: (network: string, a: string) => boolean;\n addLedgerAccount: (\n network: string,\n address: string,\n index: number,\n callback?: () => void\n ) => LedgerAccount | null;\n removeLedgerAccount: (\n network: string,\n address: string,\n callback?: () => void\n ) => void;\n renameLedgerAccount: (network: string, address: string, name: string) => void;\n getLedgerAccount: (network: string, address: string) => LedgerAccount | null;\n getLedgerAccounts: (network: string) => LedgerAccount[];\n ledgerAccounts: LedgerAccount[];\n}\n\nexport interface LedgerAccountsProviderProps {\n children: ReactNode;\n}\n\nexport interface LedgerAddress {\n address: string;\n index: number;\n name: string;\n network: string;\n pubKey: string;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@w3ux/react-connect-kit",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "license": "GPL-3.0-only",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -9,6 +9,6 @@
9
9
  "@polkagate/extension-dapp": "^0.46.12",
10
10
  "@w3ux/extension-assets": "^0.2.3",
11
11
  "@w3ux/hooks": "^0.0.3",
12
- "@w3ux/utils": "^0.0.2"
12
+ "@w3ux/utils": "^0.1.1"
13
13
  }
14
14
  }