@@ -6,6 +6,7 @@ import * as serial from '../nockjs/serial';
66import * as kg from 'urbit-key-generation';
77
88import { eqAddr, addHexPrefix } from './wallet';
9+import { shas } from './networkCode';
910
1011// the curve param for the network keys
1112export const NETWORK_KEY_CURVE_PARAMETER = '42';
@@ -141,27 +142,33 @@ const deriveNetworkSeedFromMnemonic = async (
141142 return Just(await kg.deriveNetworkSeed(mnemonic, passphrase, revision - 1));
142143};
143144
145+/**
146+ * @param {string} authToken
147+ * @param {number} number
148+ * @return {Maybe<string>}
149+ */
150+export const deriveNetworkSeedFromAuthToken = (authToken, revision, point) => {
151+ const networkSeed = shas(authToken, `revision-${point}-${revision}`)
152+ .toString('hex')
153+ .slice(0, 32);
154+ return Just(networkSeed);
155+};
156+
144157/**
145158 * @return {Promise<Maybe<string>>}
146159 */
147160export const attemptNetworkSeedDerivation = async ({
148161 urbitWallet,
149− wallet,
150− authMnemonic,
151− details,
162+ point,
163+ authToken,
152164 revision,
153165}) => {
154166 if (Just.hasInstance(urbitWallet)) {
155167 return await deriveNetworkSeedFromUrbitWallet(urbitWallet.value, revision);
156168 }
157169
158− if (Just.hasInstance(wallet) && Just.hasInstance(authMnemonic)) {
159− return await deriveNetworkSeedFromManagementMnemonic(
160− wallet.value,
161− authMnemonic.value,
162− details,
163− revision
164− );
170+ if (Just.hasInstance(authToken)) {
171+ return deriveNetworkSeedFromAuthToken(authToken.value, point, revision);
165172 }
166173
167174 return Nothing();