@@ -1,6 +1,6 @@
1−import React, { useCallback, useMemo, useRef } from 'react';
1+import React, { useCallback, useMemo, useRef, useState } from 'react';
22import { Just } from 'folktale/maybe';
3−import { Grid, ToggleInput, CheckboxInput } from 'indigo-react';
3+import { Grid, ToggleInput, CheckboxInput, Button } from 'indigo-react';
44import * as azimuth from 'azimuth-js';
55import { randomHex } from 'web3-utils';
66
@@ -8,7 +8,9 @@ import { usePointCursor } from 'store/pointCursor';
88import { usePointCache } from 'store/pointCache';
99import { useNetwork } from 'store/network';
1010import { useWallet } from 'store/wallet';
11+import { useRollerStore } from 'store/roller';
1112
13+import useRoller from 'lib/useRoller';
1214import { useLocalRouter } from 'lib/LocalRouter';
1315import * as need from 'lib/need';
1416import {
@@ -50,7 +52,7 @@ function useSetKeys(manualNetworkSeed, setManualNetworkSeed) {
5052
5153 const networkRevision = convertToInt(_details.keyRevisionNumber, 10);
5254 const randomSeed = useRef();
53−
55+ console.log(manualNetworkSeed);
5456 const {
5557 available: keyfileAvailable,
5658 generating: keyfileGenerating,
@@ -141,6 +143,9 @@ export default function UrbitOSNetworkingKeys({
141143 const { pop } = useLocalRouter();
142144 const { pointCursor } = usePointCursor();
143145 const { getDetails } = usePointCache();
146+ const { currentL2 } = useRollerStore();
147+ const { configureNetworkingKeys, getPendingTransactions } = useRoller();
148+ const [breach, setBreach] = useState(false);
144149
145150 const point = need.point(pointCursor);
146151 const details = getDetails(point);
@@ -187,17 +192,46 @@ export default function UrbitOSNetworkingKeys({
187192 values.useNetworkSeed ? values.networkSeed : undefined,
188193 values.useDiscontinuity
189194 );
195+ setBreach(values.useDiscontinuity);
196+ setManualNetworkSeed(values.useNetworkSeed);
190197 } else {
191198 unconstruct();
192199 }
193200
194201 if (!values.useNetworkSeed && values.networkSeed) {
195202 form.change('networkSeed', '');
203+ setBreach(false);
204+ setManualNetworkSeed('');
196205 }
197206 },
198− [construct, unconstruct]
207+ [construct, unconstruct, setManualNetworkSeed, setBreach]
199208 );
200209
210+ const setNetworkingKeys = useCallback(async () => {
211+ // setLoading(true);
212+ console.log(breach, manualNetworkSeed);
213+ try {
214+ const txHash = await configureNetworkingKeys({
215+ breach,
216+ manualNetworkSeed,
217+ });
218+ // TODO: just use the tx hash instead?
219+ getPendingTransactions(point);
220+ pop();
221+ } catch (error) {
222+ // setError(error);
223+ } finally {
224+ // setLoading(false);
225+ }
226+ }, [
227+ breach,
228+ manualNetworkSeed,
229+ getPendingTransactions,
230+ point,
231+ pop,
232+ configureNetworkingKeys,
233+ ]);
234+
201235 const initialValues = useMemo(
202236 () => ({
203237 useNetworkSeed: false,
@@ -280,13 +314,25 @@ export default function UrbitOSNetworkingKeys({
280314 </>
281315 )}
282316
283− <Grid.Item
284− full
285− as={InlineEthereumTransaction}
286− {...bind}
287− label={`${hasKeys ? 'Reset' : 'Set'} Networking Keys`}
288− onReturn={() => pop()}
289− />
317+ {currentL2 ? (
318+ <Grid.Item
319+ as={Button}
320+ full
321+ className=""
322+ center
323+ solid
324+ onClick={setNetworkingKeys}>
325+ {'Sign Transaction'}
326+ </Grid.Item>
327+ ) : (
328+ <Grid.Item
329+ full
330+ as={InlineEthereumTransaction}
331+ {...bind}
332+ label={`${hasKeys ? 'Reset' : 'Set'} Networking Keys`}
333+ onReturn={() => pop()}
334+ />
335+ )}
290336 </>
291337 )}
292338 </BridgeForm>