Skip to content

Commit 19fc24d

Browse files
committed
chore(suite): refactor environment configs
1 parent 2c3ee53 commit 19fc24d

File tree

4 files changed

+13
-14
lines changed

4 files changed

+13
-14
lines changed

packages/suite/src/actions/wallet/__tests__/coinjoinClientActions.test.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ describe('coinjoinClientActions', () => {
205205
},
206206
],
207207
debug: {
208-
coinjoinServerEnvironment: { btc: 'staging' },
208+
coinjoinServerEnvironment: { btc: 'public' },
209209
},
210210
},
211211
} as any); // partial required state
@@ -214,8 +214,7 @@ describe('coinjoinClientActions', () => {
214214
const cli1 = await store.dispatch(initCoinjoinService('btc'));
215215
const cli2 = await store.dispatch(initCoinjoinService('btc'));
216216
expect(cli1).toEqual(cli2);
217-
expect(spy.mock.calls[0][0]).toEqual({
218-
environment: 'staging',
217+
expect(spy.mock.calls[0][0]).toMatchObject({
219218
network: 'btc',
220219
prison: [
221220
{

packages/suite/src/actions/wallet/coinjoinClientActions.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
getSessionDeadline,
2323
getEstimatedTimePerRound,
2424
} from 'src/utils/wallet/coinjoinUtils';
25-
import { CoinjoinService } from 'src/services/coinjoin';
25+
import { CoinjoinService, getCoinjoinConfig } from 'src/services/coinjoin';
2626
import { Dispatch, GetState } from 'src/types/suite';
2727
import { CoinjoinAccount, EndRoundState, CoinjoinDebugSettings } from 'src/types/wallet/coinjoin';
2828
import { onCancel as closeModal, openModal } from 'src/actions/suite/modalActions';
@@ -646,6 +646,7 @@ const signCoinjoinTx =
646646
useEmptyPassphrase: device?.useEmptyPassphrase,
647647
inputs: tx.inputs,
648648
outputs: tx.outputs,
649+
// @ts-expect-error wait for fw protobuf update
649650
coinjoinRequest: tx.coinjoinRequest,
650651
coin: network,
651652
preauthorized: true,
@@ -747,8 +748,7 @@ export const initCoinjoinService =
747748
return knownService;
748749
}
749750

750-
const environment =
751-
debug?.coinjoinServerEnvironment && debug?.coinjoinServerEnvironment[symbol];
751+
const environment = debug?.coinjoinServerEnvironment?.[symbol];
752752

753753
// or start new instance
754754
dispatch(clientEnable(symbol));
@@ -788,10 +788,11 @@ export const initCoinjoinService =
788788
});
789789

790790
try {
791+
const settings = getCoinjoinConfig(symbol, environment);
791792
const service = await CoinjoinService.createInstance({
792793
network: symbol,
793794
prison,
794-
environment,
795+
settings,
795796
});
796797
if (isCoinjoinDisabledByFeatureFlag) {
797798
dispatch(clientEnableFailed(symbol));

packages/suite/src/services/coinjoin/coinjoinService.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ import { CoinjoinBackend, CoinjoinClient, CoinjoinPrisonInmate } from '@trezor/c
22
import { createIpcProxy } from '@trezor/ipc-proxy';
33
import { PartialRecord } from '@trezor/type-utils';
44
import { isDesktop } from '@trezor/env-utils';
5-
import { CoinjoinServerEnvironment } from 'src/types/wallet/coinjoin';
65
import { NetworkSymbol } from 'src/types/wallet';
7-
import { getCoinjoinConfig } from './config';
6+
import { CoinjoinNetworksConfig, getCoinjoinConfig } from './config';
87

98
const loadInstance = (settings: ReturnType<typeof getCoinjoinConfig>) => {
109
if (isDesktop()) {
@@ -30,15 +29,15 @@ export class CoinjoinService {
3029
static async createInstance({
3130
network,
3231
prison,
33-
environment,
32+
settings,
3433
}: {
3534
network: NetworkSymbol;
3635
prison?: CoinjoinPrisonInmate[];
37-
environment?: CoinjoinServerEnvironment;
36+
settings?: CoinjoinNetworksConfig;
3837
}) {
3938
if (this.instances[network]) return this.instances[network] as CoinjoinServiceInstance;
40-
const settings = getCoinjoinConfig(network, environment);
41-
const [backend, client] = await loadInstance({ ...settings, prison });
39+
const config = settings ?? getCoinjoinConfig(network);
40+
const [backend, client] = await loadInstance({ ...config, prison });
4241
const instance = { backend, client };
4342
if (!isDesktop()) {
4443
// display client log directly in console

packages/suite/src/services/coinjoin/config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import type { PartialRecord } from '@trezor/type-utils';
99
import type { CoinjoinServerEnvironment } from 'src/types/wallet/coinjoin';
1010
import type { NetworkSymbol } from '@suite-common/wallet-config';
1111

12-
type CoinjoinNetworksConfig = CoinjoinBackendSettings & CoinjoinClientSettings;
12+
export type CoinjoinNetworksConfig = CoinjoinBackendSettings & CoinjoinClientSettings;
1313

1414
type ServerEnvironment = PartialRecord<CoinjoinServerEnvironment, CoinjoinNetworksConfig>;
1515

0 commit comments

Comments
 (0)