@@ -222,132 +222,134 @@ export default function useRoller() {
223 }, [api, setPendingTransactions, pointCursor]);
223 }, [api, setPendingTransactions, pointCursor]);
225− const getInvites = useCallback(async () => {
225+ const getInvites = useCallback(
226+ async (isL2: boolean) => {
227− const curPoint: string = need.point(pointCursor);
228+ const curPoint: string = need.point(pointCursor);
228− const invites = getStoredInvites(curPoint);
229+ const invites = getStoredInvites(curPoint);
229− const availableInvites = invites.available;
230+ const availableInvites = invites.available;
231− const pendingTransactions = await api.getPendingByShip(curPoint);
232+ const pendingTransactions = await api.getPendingByShip(curPoint);
232− console.log('PENDING', pendingTransactions);
233+ console.log('PENDING', pendingTransactions);
233− setPendingTransactions(pendingTransactions);
234+ setPendingTransactions(pendingTransactions);
235− const stillPending = invites.pending.filter(invite => {
236+ const stillPending = invites.pending.filter(invite => {
236− const completed = !pendingTransactions.find(
237+ const completed = !pendingTransactions.find(
237− p => p?.rawTx?.tx?.tx?.data?.ship === invite.planet
238+ p => p?.rawTx?.tx?.tx?.data?.ship === invite.planet
241− availableInvites.push({ ...invite, status: 'available' });
244− return !completed;
241+ if (completed) {
245− });
242+ availableInvites.push({ ...invite, status: 'available' });
247− setStoredInvites(curPoint, {
245+ return !completed;
248− available: availableInvites,
246+ });
249− pending: stillPending,
250− claimed: invites.claimed,
252− setInvites(availableInvites);
254− let possibleMissingInvites: number[] = [];
248+ setStoredInvites(curPoint, {
249+ available: availableInvites,
250+ pending: stillPending,
251+ claimed: invites.claimed,
253+ setInvites(availableInvites);
257− const allSpawned = await api.getSpawned(Number(curPoint));
258− const ownedPoints = maybeGetResult(controlledPoints, 'ownedPoints', []);
259− possibleMissingInvites = ownedPoints.filter(
255+ let possibleMissingInvites: number[] = [];
261− allSpawned.includes(p) &&
262− azimuth.azimuth.getPointSize(p) === azimuth.azimuth.PointSize.Planet
265− const maybeOutgoingPoints = controlledPoints.chain((points: any) =>
267− Error: () => Nothing(),
269− const points = c.value.ownedPoints.map((point: number) =>
270− getDetails(point).chain((details: any) =>
271− Just({ point: point, has: hasTransferProxy(details) })
274− if (points.every((p: any) => Just.hasInstance(p))) {
275− const outgoing = points
276− .filter((p: any) => p.value.has)
277− .map((p: any) => p.value.point);
278− return Just(outgoing);
286− possibleMissingInvites = maybeOutgoingPoints
257+ if (isL2) {
287− .getOrElse([])
258+ const allSpawned = await api.getSpawned(Number(curPoint));
288− .filter(
259+ const ownedPoints = maybeGetResult(controlledPoints, 'ownedPoints', []);
260+ possibleMissingInvites = allSpawned.filter(
289 (p: number) =>
261 (p: number) =>
290− azimuth.azimuth.getPointSize(p) ===
262+ ownedPoints.includes(p) &&
291− azimuth.azimuth.PointSize.Planet
263+ azimuth.azimuth.getPointSize(p) === azimuth.azimuth.PointSize.Planet
266+ const maybeOutgoingPoints = controlledPoints.chain((points: any) =>
268+ Error: () => Nothing(),
270+ const points = c.value.ownedPoints.map((point: number) =>
271+ getDetails(point).chain((details: any) =>
272+ Just({ point: point, has: hasTransferProxy(details) })
275+ if (points.every((p: any) => Just.hasInstance(p))) {
276+ const outgoing = points
277+ .filter((p: any) => p.value.has)
278+ .map((p: any) => p.value.point);
279+ return Just(outgoing);
295− // Iterate over all spawned and controlled planets
287+ possibleMissingInvites = maybeOutgoingPoints
296− // If the planet is not in available invites, generate the ticket and add it
288+ .getOrElse([])
297− const _authToken = authToken.getOrElse(null);
289+ .filter(
298− const _contracts = contracts.getOrElse(null);
290+ (p: number) =>
291+ azimuth.azimuth.getPointSize(p) ===
292+ azimuth.azimuth.PointSize.Planet
300− const newClaimed = availableInvites.filter(
296+ // Iterate over all spawned and controlled planets
301− ({ planet }) => !possibleMissingInvites.includes(planet)
297+ // If the planet is not in available invites, generate the ticket and add it
302− );
298+ const _authToken = authToken.getOrElse(null);
299+ const _contracts = contracts.getOrElse(null);
301+ const newClaimed = availableInvites.filter(
302+ ({ planet }) => !possibleMissingInvites.includes(planet)
304− if (_authToken && _contracts) {
305+ if (_authToken && _contracts) {
305− for (let i = 0; i < possibleMissingInvites.length; i++) {
306+ for (let i = 0; i < possibleMissingInvites.length; i++) {
306− const planet = possibleMissingInvites[i];
307+ const planet = possibleMissingInvites[i];
308− if (!availableInvites.find(hasPoint(planet))) {
309+ if (!availableInvites.find(hasPoint(planet))) {
309− console.log('MISSING IN AVAILABLE', planet);
310+ console.log('MISSING IN AVAILABLE', planet);
313− } = await wg.generateTemporaryDeterministicWallet(
314+ } = await wg.generateTemporaryDeterministicWallet(
315− _authToken
316+ _authToken
318− availableInvites.push({
319+ availableInvites.push({
320− status: 'available',
321+ status: 'available',
322− hash: '',
323+ hash: '',
323− owner: owner.keys.address,
324+ owner: owner.keys.address,
328− setStoredInvites(curPoint, {
329+ setStoredInvites(curPoint, {
329− available: availableInvites.filter(({ planet }) =>
330+ available: availableInvites.filter(({ planet }) =>
330− possibleMissingInvites.includes(planet)
331+ possibleMissingInvites.includes(planet)
332− pending: stillPending,
333+ pending: stillPending,
333− claimed: invites.claimed.concat(newClaimed),
334+ claimed: invites.claimed.concat(newClaimed),
335− setInvites(availableInvites);
336+ setInvites(availableInvites);
339+ console.warn('ERROR GETTING INVITES', error);
337− } catch (error) {
341+ },
338− console.warn('ERROR GETTING INVITES', error);
342− pointCursor,
344+ pointCursor,
343− setInvites,
345+ setInvites,
344− setPendingTransactions,
346+ setPendingTransactions,
345− authToken,
347+ authToken,
346− contracts,
348+ contracts,
347− controlledPoints,
349+ controlledPoints,
349− getDetails,
350+ getDetails,
352 // On load, get initial config
354 // On load, get initial config
353 useEffect(() => {
355 useEffect(() => {