|
1 | 1 | import EventEmitter from 'events';
|
2 | 2 |
|
3 | 3 | import * as ERRORS from '@trezor/connect/src/constants/errors';
|
4 |
| -import { parseConnectSettings } from '@trezor/connect/src/data/connectSettings'; |
| 4 | +import { corsValidator, parseConnectSettings } from '@trezor/connect/src/data/connectSettings'; |
| 5 | +import { DEEPLINK_VERSION } from '@trezor/connect/src/data/version'; |
5 | 6 | import type { CallMethodPayload } from '@trezor/connect/src/events/call';
|
6 | 7 | import { ConnectFactoryDependencies, factory } from '@trezor/connect/src/factory';
|
7 | 8 | import type {
|
@@ -44,12 +45,22 @@ export class TrezorConnectDeeplink implements ConnectFactoryDependencies<Connect
|
44 | 45 | throw new Error('Unsupported right now');
|
45 | 46 | }
|
46 | 47 |
|
| 48 | + private validateConnectSrc(connectSrc?: string) { |
| 49 | + if (connectSrc === 'trezorsuitelite://connect') return connectSrc; |
| 50 | + |
| 51 | + return corsValidator(connectSrc); |
| 52 | + } |
| 53 | + |
47 | 54 | public init(settings: InitFullSettings<ConnectSettingsMobile>) {
|
48 | 55 | if (!settings.deeplinkOpen) {
|
49 | 56 | throw new Error('TrezorConnect native requires "deeplinkOpen" setting.');
|
50 | 57 | }
|
| 58 | + const connectSrc = this.validateConnectSrc(settings.connectSrc); |
| 59 | + |
51 | 60 | this._settings = {
|
52 | 61 | ...parseConnectSettings({ ...this._settings, ...settings }),
|
| 62 | + connectSrc: this.validateConnectSrc(settings.connectSrc), |
| 63 | + deeplinkUrl: `${connectSrc}deeplink/${DEEPLINK_VERSION}/`, |
53 | 64 | deeplinkOpen: settings.deeplinkOpen,
|
54 | 65 | deeplinkCallbackUrl: settings.deeplinkCallbackUrl,
|
55 | 66 | };
|
|
0 commit comments