on master help sign in
keys: derive from management mnemonic if possible

We used to do this, and now we will continue to. If the mnemonic is not the current management proxy, we still fall back to the auth token.

commitcc9183b9f404a1782d19d5e8e8731f99db347f5e authorFang <git@fang.io> dateFri 24 Jul 2020, 23:32 (6 years ago) parent89c47ad
3 files changed+35−1
src/lib/keys.js+17 src/lib/useKeyfileGenerator.js+5 src/views/UrbitOS/NetworkingKeys.js+13−1
src/lib/keys.js+17
@@ -160,10 +160,15 @@ export const deriveNetworkSeedFromAuthToken = (point, authToken, revision) => {
160160};
161161
162162/**
163+ * Derives from either a full Urbit Wallet, a current management mnemonic,
164+ * or an auth token, in that order of preference.
163165 * @return {Promise<Maybe<string>>}
164166 */
165167export const attemptNetworkSeedDerivation = async ({
166168 urbitWallet,
169+ wallet,
170+ authMnemonic,
171+ details,
167172 point,
168173 authToken,
169174 revision,
@@ -172,6 +177,18 @@ export const attemptNetworkSeedDerivation = async ({
172177 return await deriveNetworkSeedFromUrbitWallet(urbitWallet.value, revision);
173178 }
174179
180+ if (Just.hasInstance(wallet) && Just.hasInstance(authMnemonic)) {
181+ const managementSeed = await deriveNetworkSeedFromManagementMnemonic(
182+ wallet.value,
183+ authMnemonic.value,
184+ details,
185+ revision
186+ );
187+ if (Just.hasInstance(managementSeed)) {
188+ return managementSeed;
189+ }
190+ }
191+
175192 if (Just.hasInstance(authToken)) {
176193 return deriveNetworkSeedFromAuthToken(point, authToken.value, revision);
177194 }
src/lib/useKeyfileGenerator.js+5
@@ -60,6 +60,9 @@ export default function useKeyfileGenerator(manualNetworkSeed) {
6060 ? Just(manualNetworkSeed)
6161 : await attemptNetworkSeedDerivation({
6262 urbitWallet,
63+ wallet,
64+ authMnemonic,
65+ details: _details,
6366 authToken,
6467 point: _point,
6568 revision: networkRevision,
@@ -94,6 +97,8 @@ export default function useKeyfileGenerator(manualNetworkSeed) {
9497 hasNetworkingKeys,
9598 manualNetworkSeed,
9699 urbitWallet,
100+ wallet,
101+ authMnemonic,
97102 setCode,
98103 details,
99104 _point,
src/views/UrbitOS/NetworkingKeys.js+13−1
@@ -68,6 +68,9 @@ function useSetKeys(manualNetworkSeed, setManualNetworkSeed) {
6868
6969 const networkSeed = await attemptNetworkSeedDerivation({
7070 urbitWallet,
71+ wallet,
72+ authMnemonic,
73+ details: _details,
7174 point: _point,
7275 authToken,
7376 revision: newNetworkRevision,
@@ -83,7 +86,16 @@ function useSetKeys(manualNetworkSeed, setManualNetworkSeed) {
8386 return randomSeed.current;
8487 }
8588 },
86− [setManualNetworkSeed, networkRevision, urbitWallet, _point, authToken]
89+ [
90+ _details,
91+ authMnemonic,
92+ setManualNetworkSeed,
93+ networkRevision,
94+ urbitWallet,
95+ wallet,
96+ _point,
97+ authToken,
98+ ]
8799 );
88100
89101 const { completed: _completed, ...rest } = useEthereumTransaction(