Skip to content

Commit d680fe8

Browse files
committed
chore: only release evm accounts on start flow
1 parent aa23f99 commit d680fe8

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

packages/portfolio-contract/src/portfolio.exo.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -611,11 +611,12 @@ export const preparePortfolioKit = (
611611
const traceFlow = trace
612612
.sub(`portfolio${this.state.portfolioId}`)
613613
.sub(`flow${flowId}`);
614-
traceFlow(`releasing pending accounts`, [
615-
...accountsPending.keys(),
616-
]);
614+
const evmPendingAccounts = [...accountsPending.keys()].filter(
615+
chain => chain in AxelarChain,
616+
);
617+
traceFlow(`releasing pending evm accounts`, evmPendingAccounts);
617618
const reason = Error('starting new flow');
618-
for (const chainName of accountsPending.keys()) {
619+
for (const chainName of evmPendingAccounts) {
619620
this.facets.manager.releaseAccount(chainName, reason);
620621
}
621622
}

packages/portfolio-contract/test/portfolio.exo.test.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,11 @@ test('capture stateShape to be intentional about changes', t => {
287287
t.snapshot(PositionStateShape, 'PositionStateShape');
288288
});
289289

290-
test('manager releases pending accounts when starting a new flow', async t => {
290+
test('manager releases evm pending accounts when starting a new flow', async t => {
291291
const { makePortfolioKit } = makeTestSetup();
292292
const { manager, reader } = makePortfolioKit({ portfolioId: 1 });
293293

294+
manager.reserveAccount('noble');
294295
const { state: arbitrumStateBefore } =
295296
manager.reserveAccountState('Arbitrum');
296297
t.is(arbitrumStateBefore, 'new');
@@ -312,6 +313,11 @@ test('manager releases pending accounts when starting a new flow', async t => {
312313
const { state: arbitrumStateAfterStart } =
313314
manager.reserveAccountState('Arbitrum');
314315
t.is(arbitrumStateAfterStart, 'failed');
316+
317+
const { noble } = reader.accountIdByChain();
318+
t.is(noble, undefined, 'no noble info');
319+
const { state: nobleStateAfterStart } = manager.reserveAccountState('noble');
320+
t.is(nobleStateAfterStart, 'pending');
315321
});
316322

317323
test('evmHandler deposit fails if owner does not match', async t => {

0 commit comments

Comments
 (0)