Skip to content

Commit a56fc93

Browse files
committed
fix(staking): fix last stake account when moving between devnet
1 parent 37fb9b6 commit a56fc93

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

apps/staking/src/components/Dashboard/index.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,8 +249,7 @@ const useIntegrityStakingSum = (
249249
publishers
250250
.map((publisher) => publisher.positions?.[field] ?? 0n)
251251
.reduce((acc, cur) => acc + cur, 0n),
252-
// eslint-disable-next-line react-hooks/exhaustive-deps
253-
publishers.map((publisher) => publisher.positions?.[field]),
252+
[publishers, field],
254253
);
255254

256255
// eslint-disable-next-line unicorn/no-array-reduce

apps/staking/src/hooks/use-api.tsx

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,12 @@ const useApiContext = (hermesUrl: string, pythnetRpcUrl: string) => {
186186
revalidateOnReconnect: false,
187187
},
188188
);
189-
const lastStakeAccount = useLocalStorageValue<string>("last-stake-account");
189+
const lastStakeAccountMainnet = useLocalStorageValue<string>(
190+
`last-stake-account.mainnet`,
191+
);
192+
const lastStakeAccountDevnet = useLocalStorageValue<string>(
193+
`last-stake-account.devnet`,
194+
);
190195

191196
return useMemo(() => {
192197
if (wallet.connecting) {
@@ -213,11 +218,17 @@ const useApiContext = (hermesUrl: string, pythnetRpcUrl: string) => {
213218
} else {
214219
const [firstAccount, ...otherAccounts] = stakeAccounts.data;
215220
if (firstAccount) {
216-
const selectedAccount = lastStakeAccount.value
221+
const localStorageValue = isMainnet
222+
? lastStakeAccountMainnet
223+
: lastStakeAccountDevnet;
224+
const selectedAccount = localStorageValue.value
217225
? stakeAccounts.data.find(
218-
(account) => account.toBase58() === lastStakeAccount.value,
226+
(account) => account.toBase58() === localStorageValue.value,
219227
)
220228
: undefined;
229+
if (!selectedAccount) {
230+
localStorageValue.set(firstAccount.toBase58());
231+
}
221232
return State[StateType.Loaded](
222233
isMainnet,
223234
pythStakingClient,
@@ -226,7 +237,7 @@ const useApiContext = (hermesUrl: string, pythnetRpcUrl: string) => {
226237
selectedAccount ?? firstAccount,
227238
[firstAccount, ...otherAccounts],
228239
(account: PublicKey) => {
229-
lastStakeAccount.set(account.toBase58());
240+
localStorageValue.set(account.toBase58());
230241
},
231242
mutate,
232243
);
@@ -256,7 +267,8 @@ const useApiContext = (hermesUrl: string, pythnetRpcUrl: string) => {
256267
pythnetClient,
257268
stakeAccounts,
258269
hermesClient,
259-
lastStakeAccount,
270+
lastStakeAccountMainnet,
271+
lastStakeAccountDevnet,
260272
mutate,
261273
]);
262274
};

0 commit comments

Comments
 (0)