@metamask/connect-multichain 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/dist/browser/es/connect-multichain.d.mts +26 -9
  3. package/dist/browser/es/connect-multichain.mjs +341 -78
  4. package/dist/browser/es/connect-multichain.mjs.map +1 -1
  5. package/dist/browser/es/metafile-esm.json +1 -1
  6. package/dist/browser/iife/connect-multichain.d.ts +26 -9
  7. package/dist/browser/iife/connect-multichain.js +961 -151
  8. package/dist/browser/iife/connect-multichain.js.map +1 -1
  9. package/dist/browser/iife/metafile-iife.json +1 -1
  10. package/dist/browser/umd/connect-multichain.d.ts +26 -9
  11. package/dist/browser/umd/connect-multichain.js +341 -78
  12. package/dist/browser/umd/connect-multichain.js.map +1 -1
  13. package/dist/browser/umd/metafile-cjs.json +1 -1
  14. package/dist/node/cjs/connect-multichain.d.ts +26 -9
  15. package/dist/node/cjs/connect-multichain.js +342 -79
  16. package/dist/node/cjs/connect-multichain.js.map +1 -1
  17. package/dist/node/cjs/metafile-cjs.json +1 -1
  18. package/dist/node/es/connect-multichain.d.mts +26 -9
  19. package/dist/node/es/connect-multichain.mjs +341 -78
  20. package/dist/node/es/connect-multichain.mjs.map +1 -1
  21. package/dist/node/es/metafile-esm.json +1 -1
  22. package/dist/react-native/es/connect-multichain.d.mts +26 -9
  23. package/dist/react-native/es/connect-multichain.mjs +328 -69
  24. package/dist/react-native/es/connect-multichain.mjs.map +1 -1
  25. package/dist/react-native/es/metafile-esm.json +1 -1
  26. package/dist/src/domain/multichain/index.d.ts +4 -4
  27. package/dist/src/domain/multichain/index.d.ts.map +1 -1
  28. package/dist/src/domain/multichain/index.js.map +1 -1
  29. package/dist/src/domain/multichain/types.d.ts +4 -3
  30. package/dist/src/domain/multichain/types.d.ts.map +1 -1
  31. package/dist/src/domain/ui/types.d.ts +7 -0
  32. package/dist/src/domain/ui/types.d.ts.map +1 -1
  33. package/dist/src/domain/ui/types.js.map +1 -1
  34. package/dist/src/index.browser.d.ts +1 -1
  35. package/dist/src/index.browser.d.ts.map +1 -1
  36. package/dist/src/index.browser.js +1 -1
  37. package/dist/src/index.browser.js.map +1 -1
  38. package/dist/src/index.native.d.ts +1 -1
  39. package/dist/src/index.native.d.ts.map +1 -1
  40. package/dist/src/index.native.js +2 -2
  41. package/dist/src/index.native.js.map +1 -1
  42. package/dist/src/index.node.d.ts +1 -1
  43. package/dist/src/index.node.d.ts.map +1 -1
  44. package/dist/src/index.node.js +1 -1
  45. package/dist/src/index.node.js.map +1 -1
  46. package/dist/src/multichain/index.d.ts +6 -6
  47. package/dist/src/multichain/index.d.ts.map +1 -1
  48. package/dist/src/multichain/index.js +103 -43
  49. package/dist/src/multichain/index.js.map +1 -1
  50. package/dist/src/multichain/transports/default/index.d.ts +2 -1
  51. package/dist/src/multichain/transports/default/index.d.ts.map +1 -1
  52. package/dist/src/multichain/transports/default/index.js +1 -0
  53. package/dist/src/multichain/transports/default/index.js.map +1 -1
  54. package/dist/src/multichain/transports/multichainApiClientWrapper/index.d.ts +21 -0
  55. package/dist/src/multichain/transports/multichainApiClientWrapper/index.d.ts.map +1 -0
  56. package/dist/src/multichain/transports/multichainApiClientWrapper/index.js +159 -0
  57. package/dist/src/multichain/transports/multichainApiClientWrapper/index.js.map +1 -0
  58. package/dist/src/multichain/transports/mwp/index.d.ts +4 -1
  59. package/dist/src/multichain/transports/mwp/index.d.ts.map +1 -1
  60. package/dist/src/multichain/transports/mwp/index.js +54 -2
  61. package/dist/src/multichain/transports/mwp/index.js.map +1 -1
  62. package/dist/src/ui/ModalFactory.d.ts +54 -0
  63. package/dist/src/ui/ModalFactory.d.ts.map +1 -0
  64. package/dist/src/ui/ModalFactory.js +171 -0
  65. package/dist/src/ui/ModalFactory.js.map +1 -0
  66. package/dist/src/ui/index.d.ts +14 -38
  67. package/dist/src/ui/index.d.ts.map +1 -1
  68. package/dist/src/ui/index.js +24 -142
  69. package/dist/src/ui/index.js.map +1 -1
  70. package/dist/src/ui/index.native.d.ts +13 -0
  71. package/dist/src/ui/index.native.d.ts.map +1 -0
  72. package/dist/src/ui/{preload.native.js → index.native.js} +12 -6
  73. package/dist/src/ui/index.native.js.map +1 -0
  74. package/dist/src/ui/modals/base/AbstractInstallModal.d.ts.map +1 -1
  75. package/dist/src/ui/modals/base/AbstractInstallModal.js +0 -4
  76. package/dist/src/ui/modals/base/AbstractInstallModal.js.map +1 -1
  77. package/dist/types/connect-multichain.d.ts +26 -9
  78. package/package.json +4 -2
  79. package/dist/src/ui/preload.native.d.ts +0 -5
  80. package/dist/src/ui/preload.native.d.ts.map +0 -1
  81. package/dist/src/ui/preload.native.js.map +0 -1
  82. package/dist/src/ui/preload.web.d.ts +0 -5
  83. package/dist/src/ui/preload.web.d.ts.map +0 -1
  84. package/dist/src/ui/preload.web.js +0 -27
  85. package/dist/src/ui/preload.web.js.map +0 -1
@@ -1,41 +1,17 @@
1
- import { type ConnectionRequest, type Modal, type OTPCode } from '../domain';
2
- import type { AbstractOTPCodeModal } from './modals/base/AbstractOTPModal';
1
+ /**
2
+ * Browser/Web UI module entry point
3
+ */
4
+ import { BaseModalFactory } from './ModalFactory';
3
5
  import type { FactoryModals } from './modals/types';
4
- export declare class ModalFactory<T extends FactoryModals = FactoryModals> {
5
- protected readonly options: T;
6
- modal: Modal<any>;
7
- private readonly platform;
8
- private successCallback;
9
- /**
10
- * Creates a new modal factory instance.
11
- *
12
- * @param options - The modals configuration object
13
- */
14
- constructor(options: T);
15
- private validateModals;
16
- unload(error?: Error): Promise<void>;
17
- /**
18
- * Determines if the current platform is a mobile native environment.
19
- * Currently only includes React Native.
20
- */
21
- get isMobile(): boolean;
22
- /**
23
- * Determines if the current platform is a Node.js environment.
24
- * Used for server-side or non-browser environments.
25
- */
26
- get isNode(): boolean;
27
- /**
28
- * Determines if the current platform is a web environment.
29
- * Includes desktop web, MetaMask mobile webview, and mobile web.
30
- */
31
- get isWeb(): boolean;
32
- private getContainer;
33
- private getMountedContainer;
34
- createConnectionDeeplink(connectionRequest?: ConnectionRequest): string;
35
- createConnectionUniversalLink(connectionRequest?: ConnectionRequest): string;
36
- private onCloseModal;
37
- private onStartDesktopOnboarding;
38
- renderInstallModal(showInstallModal: boolean, createConnectionRequest: () => Promise<ConnectionRequest>, successCallback: (error?: Error) => Promise<void>): Promise<void>;
39
- renderOTPCodeModal(createOTPCode: () => Promise<OTPCode>, successCallback: (error?: Error) => Promise<void>, updateOTPCode: (otpCode: OTPCode, modal: AbstractOTPCodeModal) => void): Promise<void>;
6
+ /**
7
+ * Web-specific preload that loads Stencil custom elements
8
+ */
9
+ export declare function preload(): Promise<void>;
10
+ /**
11
+ * ModalFactory for browser/web environments.
12
+ * Loads Stencil web components via dynamic import.
13
+ */
14
+ export declare class ModalFactory<T extends FactoryModals = FactoryModals> extends BaseModalFactory<T> {
15
+ protected preload(): Promise<void>;
40
16
  }
41
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/index.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,iBAAiB,EAGtB,KAAK,KAAK,EACV,KAAK,OAAO,EAEb,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,gBAAgB,CAAC;AAKhE,qBAAa,YAAY,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAYnD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAXlC,KAAK,EAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAE5D,OAAO,CAAC,eAAe,CAAoC;IAE3D;;;;OAIG;gBAC4B,OAAO,EAAE,CAAC;IAIzC,OAAO,CAAC,cAAc;IAUhB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK;IAK1B;;;OAGG;IACH,IAAI,QAAQ,YAEX;IAED;;;OAGG;IACH,IAAI,MAAM,YAET;IAED;;;OAGG;IACH,IAAI,KAAK,YAMR;IAED,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,mBAAmB;IAW3B,wBAAwB,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IAU9D,6BAA6B,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;YAUrD,YAAY;IAM1B,OAAO,CAAC,wBAAwB;IAInB,kBAAkB,CAC7B,gBAAgB,EAAE,OAAO,EACzB,uBAAuB,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,EACzD,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC;IA6BtC,kBAAkB,CAC7B,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EACrC,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,EACjD,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,KAAK,IAAI;CAqBzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAY7C;AAED;;;GAGG;AACH,qBAAa,YAAY,CACvB,CAAC,SAAS,aAAa,GAAG,aAAa,CACvC,SAAQ,gBAAgB,CAAC,CAAC,CAAC;cACX,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGzC"}
@@ -7,153 +7,35 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- /* eslint-disable @typescript-eslint/no-shadow */
11
- /* eslint-disable @typescript-eslint/no-misused-promises */
12
- /* eslint-disable no-restricted-globals */
13
- /* eslint-disable jsdoc/require-returns */
14
- /* eslint-disable @typescript-eslint/parameter-properties */
15
- /* eslint-disable @typescript-eslint/explicit-function-return-type */
16
- /* eslint-disable no-restricted-syntax */
17
- /* eslint-disable promise/no-return-wrap */
18
- /* eslint-disable require-atomic-updates */
19
- /* eslint-disable @typescript-eslint/naming-convention */
20
- import MetaMaskOnboarding from '@metamask/onboarding';
21
- import { METAMASK_CONNECT_BASE_URL, METAMASK_DEEPLINK_BASE } from '../config';
22
- import { getPlatformType, getVersion, PlatformType, } from '../domain';
23
- import { compressString } from '../multichain/utils';
24
- import { preload } from './preload.web';
25
- export class ModalFactory {
26
- /**
27
- * Creates a new modal factory instance.
28
- *
29
- * @param options - The modals configuration object
30
- */
31
- constructor(options) {
32
- this.options = options;
33
- this.platform = getPlatformType();
34
- this.validateModals();
35
- }
36
- validateModals() {
37
- const requiredModals = ['InstallModal', 'OTPCodeModal'];
38
- const missingModals = requiredModals.filter((modal) => !this.options[modal]);
39
- if (missingModals.length > 0) {
40
- throw new Error(`Missing required modals: ${missingModals.join(', ')}`);
41
- }
42
- }
43
- unload(error) {
44
- return __awaiter(this, void 0, void 0, function* () {
45
- var _a, _b;
46
- (_a = this.modal) === null || _a === void 0 ? void 0 : _a.unmount();
47
- yield ((_b = this.successCallback) === null || _b === void 0 ? void 0 : _b.call(this, error));
48
- });
49
- }
50
- /**
51
- * Determines if the current platform is a mobile native environment.
52
- * Currently only includes React Native.
53
- */
54
- get isMobile() {
55
- return this.platform === PlatformType.ReactNative;
56
- }
57
- /**
58
- * Determines if the current platform is a Node.js environment.
59
- * Used for server-side or non-browser environments.
60
- */
61
- get isNode() {
62
- return this.platform === PlatformType.NonBrowser;
63
- }
64
- /**
65
- * Determines if the current platform is a web environment.
66
- * Includes desktop web, MetaMask mobile webview, and mobile web.
67
- */
68
- get isWeb() {
69
- return (this.platform === PlatformType.DesktopWeb ||
70
- this.platform === PlatformType.MetaMaskMobileWebview ||
71
- this.platform === PlatformType.MobileWeb);
72
- }
73
- getContainer() {
74
- return typeof document === 'undefined'
75
- ? undefined
76
- : document.createElement('div');
77
- }
78
- getMountedContainer() {
10
+ /**
11
+ * Browser/Web UI module entry point
12
+ */
13
+ import { BaseModalFactory } from './ModalFactory';
14
+ /**
15
+ * Web-specific preload that loads Stencil custom elements
16
+ */
17
+ export function preload() {
18
+ return __awaiter(this, void 0, void 0, function* () {
79
19
  if (typeof document === 'undefined') {
80
- return undefined;
81
- }
82
- const container = this.getContainer();
83
- if (container) {
84
- document.body.appendChild(container);
20
+ return;
85
21
  }
86
- return container;
87
- }
88
- createConnectionDeeplink(connectionRequest) {
89
- if (!connectionRequest) {
90
- throw new Error('createConnectionDeeplink can only be called with a connection request');
22
+ try {
23
+ const { defineCustomElements } = yield import('@metamask/multichain-ui/loader');
24
+ yield defineCustomElements();
91
25
  }
92
- const json = JSON.stringify(connectionRequest);
93
- const compressed = compressString(json);
94
- const urlEncoded = encodeURIComponent(compressed);
95
- return `${METAMASK_DEEPLINK_BASE}/mwp?p=${urlEncoded}&c=1`;
96
- }
97
- createConnectionUniversalLink(connectionRequest) {
98
- if (!connectionRequest) {
99
- return `${METAMASK_CONNECT_BASE_URL}`;
26
+ catch (error) {
27
+ console.error('Failed to load customElements:', error);
100
28
  }
101
- const json = JSON.stringify(connectionRequest);
102
- const compressed = compressString(json);
103
- const urlEncoded = encodeURIComponent(compressed);
104
- return `${METAMASK_CONNECT_BASE_URL}/mwp?p=${urlEncoded}&c=1`;
105
- }
106
- onCloseModal() {
107
- return __awaiter(this, arguments, void 0, function* (shouldTerminate = true) {
108
- return this.unload(shouldTerminate ? new Error('User closed modal') : undefined);
109
- });
110
- }
111
- onStartDesktopOnboarding() {
112
- new MetaMaskOnboarding().startOnboarding();
113
- }
114
- renderInstallModal(showInstallModal, createConnectionRequest, successCallback) {
115
- return __awaiter(this, void 0, void 0, function* () {
116
- var _a;
117
- (_a = this.modal) === null || _a === void 0 ? void 0 : _a.unmount();
118
- yield preload();
119
- this.successCallback = successCallback;
120
- const parentElement = this.getMountedContainer();
121
- const connectionRequest = yield createConnectionRequest();
122
- const qrCodeLink = this.createConnectionDeeplink(connectionRequest);
123
- const modal = new this.options.InstallModal({
124
- expiresIn: (connectionRequest.sessionRequest.expiresAt - Date.now()) / 1000,
125
- connectionRequest,
126
- parentElement,
127
- showInstallModal,
128
- link: qrCodeLink,
129
- sdkVersion: getVersion(),
130
- generateQRCode: (request) => __awaiter(this, void 0, void 0, function* () { return this.createConnectionDeeplink(request); }),
131
- onClose: this.onCloseModal.bind(this),
132
- startDesktopOnboarding: this.onStartDesktopOnboarding.bind(this),
133
- createConnectionRequest,
134
- });
135
- this.modal = modal;
136
- modal.mount();
137
- });
138
- }
139
- renderOTPCodeModal(createOTPCode, successCallback, updateOTPCode) {
29
+ });
30
+ }
31
+ /**
32
+ * ModalFactory for browser/web environments.
33
+ * Loads Stencil web components via dynamic import.
34
+ */
35
+ export class ModalFactory extends BaseModalFactory {
36
+ preload() {
140
37
  return __awaiter(this, void 0, void 0, function* () {
141
- var _a;
142
- (_a = this.modal) === null || _a === void 0 ? void 0 : _a.unmount();
143
- yield preload();
144
- this.successCallback = successCallback;
145
- const container = this.getMountedContainer();
146
- const otpCode = yield createOTPCode();
147
- const modal = new this.options.OTPCodeModal({
148
- parentElement: container,
149
- sdkVersion: getVersion(),
150
- otpCode,
151
- onClose: this.onCloseModal.bind(this),
152
- createOTPCode,
153
- updateOTPCode: (otpCode) => updateOTPCode(otpCode, modal),
154
- });
155
- this.modal = modal;
156
- modal.mount();
38
+ return preload();
157
39
  });
158
40
  }
159
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD;;GAEG;AACH,MAAM,UAAgB,OAAO;;QAC3B,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAC3C,gCAAgC,CACjC,CAAC;YACF,MAAM,oBAAoB,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CAAA;AAED;;;GAGG;AACH,MAAM,OAAO,YAEX,SAAQ,gBAAmB;IACX,OAAO;;YACrB,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;KAAA;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * React Native UI module entry point
3
+ */
4
+ import { BaseModalFactory } from './ModalFactory';
5
+ import type { FactoryModals } from './modals/types';
6
+ /**
7
+ * ModalFactory for React Native environments.
8
+ * No-op preload since Stencil web components are not used.
9
+ */
10
+ export declare class ModalFactory<T extends FactoryModals = FactoryModals> extends BaseModalFactory<T> {
11
+ protected preload(): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=index.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/ui/index.native.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;GAGG;AACH,qBAAa,YAAY,CACvB,CAAC,SAAS,aAAa,GAAG,aAAa,CACvC,SAAQ,gBAAgB,CAAC,CAAC,CAAC;cAEX,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CACzC"}
@@ -8,11 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  /**
11
- * React Native preload - no-op since Stencil web components are not used
11
+ * React Native UI module entry point
12
12
  */
13
- export function preload() {
14
- return __awaiter(this, void 0, void 0, function* () {
15
- // No-op for React Native - web components are not applicable
16
- });
13
+ import { BaseModalFactory } from './ModalFactory';
14
+ /**
15
+ * ModalFactory for React Native environments.
16
+ * No-op preload since Stencil web components are not used.
17
+ */
18
+ export class ModalFactory extends BaseModalFactory {
19
+ // No-op for React Native - web components are not applicable
20
+ preload() {
21
+ return __awaiter(this, void 0, void 0, function* () { });
22
+ }
17
23
  }
18
- //# sourceMappingURL=preload.native.js.map
24
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.native.js","sourceRoot":"","sources":["../../../src/ui/index.native.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD;;;GAGG;AACH,MAAM,OAAO,YAEX,SAAQ,gBAAmB;IAC3B,6DAA6D;IAC7C,OAAO;8DAAmB,CAAC;KAAA;CAC5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractInstallModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/base/AbstractInstallModal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,kBAAkB,EACvB,KAAK,EACL,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAC;AAKzB,8BAAsB,oBAAqB,SAAQ,KAAK,CACtD,kBAAkB,EAClB,MAAM,CACP;IACC,SAAS,CAAC,QAAQ,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC3D,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,mBAAmB,CAAc;IAEzC,QAAQ,CAAC,YAAY,CACnB,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,iBAAiB,GACnC,IAAI;IAEP,IAAI,IAAI,IAIO,MAAM,CAFpB;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAEpB;IAED,IAAI,iBAAiB,IAIoB,iBAAiB,CAFzD;IAED,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,EAEzD;IAED,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;IAOjC,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM;IAM3C,SAAS,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,iBAAiB;IA0DnE,SAAS,CAAC,mBAAmB;CAS9B"}
1
+ {"version":3,"file":"AbstractInstallModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/base/AbstractInstallModal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,kBAAkB,EACvB,KAAK,EACL,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAC;AAKzB,8BAAsB,oBAAqB,SAAQ,KAAK,CACtD,kBAAkB,EAClB,MAAM,CACP;IACC,SAAS,CAAC,QAAQ,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC3D,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,mBAAmB,CAAc;IAEzC,QAAQ,CAAC,YAAY,CACnB,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,iBAAiB,GACnC,IAAI;IAEP,IAAI,IAAI,IAIO,MAAM,CAFpB;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAEpB;IAED,IAAI,iBAAiB,IAIoB,iBAAiB,CAFzD;IAED,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,EAEzD;IAED,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;IAOjC,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM;IAM3C,SAAS,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,iBAAiB;IAqDnE,SAAS,CAAC,mBAAmB;CAS9B"}
@@ -73,10 +73,6 @@ export class AbstractInstallModal extends Modal {
73
73
  logger(`[UI: InstallModal-nodejs()] ❌ Error generating new QR code: ${error}`);
74
74
  }
75
75
  }
76
- else {
77
- const generateQRCode = yield this.options.generateQRCode(currentConnectionRequest);
78
- this.renderQRCode(generateQRCode, currentConnectionRequest);
79
- }
80
76
  }), 1000);
81
77
  }
82
78
  stopExpirationCheck() {
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractInstallModal.js","sourceRoot":"","sources":["../../../../../src/ui/modals/base/AbstractInstallModal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractInstallModal.js","sourceRoot":"","sources":["../../../../../src/ui/modals/base/AbstractInstallModal.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import debug from 'debug';
2
- import { SessionData, Transport, TransportRequest, TransportResponse, MultichainApiClient } from '@metamask/multichain-api-client';
2
+ import { SessionData, Transport, SessionProperties, TransportRequest, TransportResponse, MultichainApiClient } from '@metamask/multichain-api-client';
3
3
  export { SessionData } from '@metamask/multichain-api-client';
4
4
  import { CaipAccountId, Json } from '@metamask/utils';
5
5
  import { SessionRequest, Session } from '@metamask/mobile-wallet-protocol-core';
@@ -296,17 +296,26 @@ type FactoryModals = {
296
296
  OTPCodeModal: new (options: OTPCodeWidgetProps) => AbstractOTPCodeModal;
297
297
  };
298
298
 
299
- declare class ModalFactory<T extends FactoryModals = FactoryModals> {
299
+ /**
300
+ * Base ModalFactory class that accepts a preload function.
301
+ * Platform-specific implementations should extend this class.
302
+ */
303
+ declare abstract class BaseModalFactory<T extends FactoryModals = FactoryModals> {
300
304
  protected readonly options: T;
301
305
  modal: Modal<any>;
302
306
  private readonly platform;
303
307
  private successCallback;
308
+ private displayUriCallback?;
304
309
  /**
305
310
  * Creates a new modal factory instance.
306
311
  *
307
312
  * @param options - The modals configuration object
308
313
  */
309
314
  constructor(options: T);
315
+ /**
316
+ * Platform-specific preload function to be implemented by subclasses.
317
+ */
318
+ protected abstract preload(): Promise<void>;
310
319
  private validateModals;
311
320
  unload(error?: Error): Promise<void>;
312
321
  /**
@@ -330,7 +339,7 @@ declare class ModalFactory<T extends FactoryModals = FactoryModals> {
330
339
  createConnectionUniversalLink(connectionRequest?: ConnectionRequest): string;
331
340
  private onCloseModal;
332
341
  private onStartDesktopOnboarding;
333
- renderInstallModal(showInstallModal: boolean, createConnectionRequest: () => Promise<ConnectionRequest>, successCallback: (error?: Error) => Promise<void>): Promise<void>;
342
+ renderInstallModal(showInstallModal: boolean, createConnectionRequest: () => Promise<ConnectionRequest>, successCallback: (error?: Error) => Promise<void>, onDisplayUri?: (uri: string) => void): Promise<void>;
334
343
  renderOTPCodeModal(createOTPCode: () => Promise<OTPCode>, successCallback: (error?: Error) => Promise<void>, updateOTPCode: (otpCode: OTPCode, modal: AbstractOTPCodeModal) => void): Promise<void>;
335
344
  }
336
345
 
@@ -399,7 +408,7 @@ type MultichainOptions = {
399
408
  storage: StoreClient;
400
409
  /** UI configuration options */
401
410
  ui: {
402
- factory: ModalFactory;
411
+ factory: BaseModalFactory;
403
412
  headless?: boolean;
404
413
  preferExtension?: boolean;
405
414
  showInstallModal?: boolean;
@@ -436,6 +445,7 @@ type ExtendedTransport = Omit<Transport, 'connect'> & {
436
445
  connect: (props?: {
437
446
  scopes: Scope[];
438
447
  caipAccountIds: CaipAccountId[];
448
+ sessionProperties?: SessionProperties;
439
449
  forceRequest?: boolean;
440
450
  }) => Promise<void>;
441
451
  sendEip1193Message: <TRequest extends TransportRequest, TResponse extends TransportResponse>(request: TRequest, options?: {
@@ -450,7 +460,7 @@ declare const SDK_HANDLED_METHODS: Set<string>;
450
460
 
451
461
  declare function getInfuraRpcUrls(infuraAPIKey: string): RpcUrlsMap;
452
462
 
453
- type SDKState = 'pending' | 'loaded' | 'disconnected' | 'connected' | 'connecting';
463
+ type ConnectionStatus = 'pending' | 'loaded' | 'disconnected' | 'connected' | 'connecting';
454
464
  declare enum TransportType {
455
465
  Browser = "browser",
456
466
  MWP = "mwp",
@@ -465,7 +475,7 @@ declare enum TransportType {
465
475
  declare abstract class MultichainCore extends EventEmitter<SDKEvents> {
466
476
  protected readonly options: MultichainOptions;
467
477
  abstract storage: StoreClient;
468
- abstract state: SDKState;
478
+ abstract status: ConnectionStatus;
469
479
  abstract provider: MultichainApiClient<RPCAPI>;
470
480
  abstract transport: ExtendedTransport;
471
481
  abstract transportType: TransportType;
@@ -474,7 +484,7 @@ declare abstract class MultichainCore extends EventEmitter<SDKEvents> {
474
484
  *
475
485
  * @returns Promise that resolves to the session data
476
486
  */
477
- abstract connect(scopes: Scope[], caipAccountIds: CaipAccountId[], forceRequest?: boolean): Promise<void>;
487
+ abstract connect(scopes: Scope[], caipAccountIds: CaipAccountId[], sessionProperties?: SessionProperties, forceRequest?: boolean): Promise<void>;
478
488
  /**
479
489
  * Disconnects from the multichain provider.
480
490
  *
@@ -578,6 +588,13 @@ type InstallWidgetProps = Components.MmInstallModal & {
578
588
  startDesktopOnboarding: () => void;
579
589
  createConnectionRequest: () => Promise<ConnectionRequest>;
580
590
  generateQRCode: (connectionRequest: ConnectionRequest) => Promise<QRLink>;
591
+ /**
592
+ * Callback invoked when a QR code link is generated or regenerated.
593
+ * This allows consumers to display their own custom QR code UI.
594
+ *
595
+ * @param uri - The deeplink URI to be displayed as a QR code
596
+ */
597
+ onDisplayUri?: (uri: QRLink) => void;
581
598
  };
582
599
  type OTPCodeWidgetProps = Components.MmOtpModal & {
583
600
  parentElement?: Element;
@@ -632,6 +649,6 @@ declare function getWalletActionAnalyticsProperties(options: MultichainOptions,
632
649
  */
633
650
  declare function getVersion(): string;
634
651
 
635
- declare const createMetamaskConnect: CreateMultichainFN;
652
+ declare const createMultichainClient: CreateMultichainFN;
636
653
 
637
- export { type ConnectionRequest, type CreateMultichainFN, type DappSettings, type DataType, type DomainErrorCodes, type Enumerate, type ErrorCodeRange, type ErrorCodes, EventEmitter, type EventTypes, type ExtendedTransport, type InstallWidgetProps, type InvokeMethodOptions, type LoggerNameSpaces, Modal, type ModalFactoryConnectOptions, type ModalFactoryOptions, MultichainCore, type MultichainOptions, type NotificationCallback, type OTPCode, type OTPCodeWidgetProps, PlatformType, type QRLink, type RPCAPI, type RPCErrorCodes, RPCHttpErr, RPCInvokeMethodErr, RPCReadonlyRequestErr, RPCReadonlyResponseErr, type RPCResponse, RPC_HANDLED_METHODS, type RpcMethod, type RpcUrlsMap, type SDKEvents, type SDKState, SDK_HANDLED_METHODS, type Scope, type StorageErrorCodes, StoreAdapter, StoreClient, type StoreOptions, TransportType, createLogger, createMetamaskConnect, enableDebug, getInfuraRpcUrls, getPlatformType, getTransportType, getVersion, getWalletActionAnalyticsProperties, hasExtension, infuraRpcUrls, isEnabled, isMetamaskExtensionInstalled, isRejectionError, isSecure };
654
+ export { type ConnectionRequest, type ConnectionStatus, type CreateMultichainFN, type DappSettings, type DataType, type DomainErrorCodes, type Enumerate, type ErrorCodeRange, type ErrorCodes, EventEmitter, type EventTypes, type ExtendedTransport, type InstallWidgetProps, type InvokeMethodOptions, type LoggerNameSpaces, Modal, type ModalFactoryConnectOptions, type ModalFactoryOptions, MultichainCore, type MultichainOptions, type NotificationCallback, type OTPCode, type OTPCodeWidgetProps, PlatformType, type QRLink, type RPCAPI, type RPCErrorCodes, RPCHttpErr, RPCInvokeMethodErr, RPCReadonlyRequestErr, RPCReadonlyResponseErr, type RPCResponse, RPC_HANDLED_METHODS, type RpcMethod, type RpcUrlsMap, type SDKEvents, SDK_HANDLED_METHODS, type Scope, type StorageErrorCodes, StoreAdapter, StoreClient, type StoreOptions, TransportType, createLogger, createMultichainClient, enableDebug, getInfuraRpcUrls, getPlatformType, getTransportType, getVersion, getWalletActionAnalyticsProperties, hasExtension, infuraRpcUrls, isEnabled, isMetamaskExtensionInstalled, isRejectionError, isSecure };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/connect-multichain",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Multichain package for MetaMask Connect",
5
5
  "keywords": [
6
6
  "MetaMask",
@@ -63,7 +63,8 @@
63
63
  "test:ci": "yarn pretest:ci && vitest run --coverage --coverage.reporter=text --silent",
64
64
  "test:unit": "vitest run",
65
65
  "test:verbose": "vitest run --reporter=verbose",
66
- "test:watch": "vitest watch"
66
+ "test:watch": "vitest watch",
67
+ "allow-scripts": ""
67
68
  },
68
69
  "dependencies": {
69
70
  "@metamask/analytics": "^0.2.0",
@@ -72,6 +73,7 @@
72
73
  "@metamask/multichain-api-client": "^0.10.1",
73
74
  "@metamask/multichain-ui": "^0.3.0",
74
75
  "@metamask/onboarding": "^1.0.1",
76
+ "@metamask/rpc-errors": "^7.0.3",
75
77
  "@metamask/utils": "^11.8.1",
76
78
  "@paulmillr/qr": "^0.2.1",
77
79
  "bowser": "^2.11.0",
@@ -1,5 +0,0 @@
1
- /**
2
- * React Native preload - no-op since Stencil web components are not used
3
- */
4
- export declare function preload(): Promise<void>;
5
- //# sourceMappingURL=preload.native.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preload.native.d.ts","sourceRoot":"","sources":["../../../src/ui/preload.native.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"preload.native.js","sourceRoot":"","sources":["../../../src/ui/preload.native.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;GAEG;AACH,MAAM,UAAgB,OAAO;;QAC3B,6DAA6D;IAC/D,CAAC;CAAA"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Web-specific preload that loads Stencil custom elements
3
- */
4
- export declare function preload(): Promise<void>;
5
- //# sourceMappingURL=preload.web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preload.web.d.ts","sourceRoot":"","sources":["../../../src/ui/preload.web.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAY7C"}
@@ -1,27 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- /**
11
- * Web-specific preload that loads Stencil custom elements
12
- */
13
- export function preload() {
14
- return __awaiter(this, void 0, void 0, function* () {
15
- if (typeof document === 'undefined') {
16
- return;
17
- }
18
- try {
19
- const { defineCustomElements } = yield import('@metamask/multichain-ui/loader');
20
- yield defineCustomElements();
21
- }
22
- catch (error) {
23
- console.error('Failed to load customElements:', error);
24
- }
25
- });
26
- }
27
- //# sourceMappingURL=preload.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preload.web.js","sourceRoot":"","sources":["../../../src/ui/preload.web.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;GAEG;AACH,MAAM,UAAgB,OAAO;;QAC3B,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAC3C,gCAAgC,CACjC,CAAC;YACF,MAAM,oBAAoB,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CAAA"}