@metamask/connect-multichain 0.3.2 → 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.
- package/CHANGELOG.md +55 -15
- package/README.md +1 -1
- package/dist/browser/es/connect-multichain.d.mts +26 -12
- package/dist/browser/es/connect-multichain.mjs +846 -598
- package/dist/browser/es/connect-multichain.mjs.map +1 -1
- package/dist/browser/es/metafile-esm.json +1 -1
- package/dist/browser/iife/connect-multichain.d.ts +26 -12
- package/dist/browser/iife/connect-multichain.js +4793 -2291
- package/dist/browser/iife/connect-multichain.js.map +1 -1
- package/dist/browser/iife/metafile-iife.json +1 -1
- package/dist/browser/umd/connect-multichain.d.ts +26 -12
- package/dist/browser/umd/connect-multichain.js +846 -598
- package/dist/browser/umd/connect-multichain.js.map +1 -1
- package/dist/browser/umd/metafile-cjs.json +1 -1
- package/dist/node/cjs/connect-multichain.d.ts +26 -12
- package/dist/node/cjs/connect-multichain.js +846 -609
- package/dist/node/cjs/connect-multichain.js.map +1 -1
- package/dist/node/cjs/metafile-cjs.json +1 -1
- package/dist/node/es/connect-multichain.d.mts +26 -12
- package/dist/node/es/connect-multichain.mjs +844 -607
- package/dist/node/es/connect-multichain.mjs.map +1 -1
- package/dist/node/es/metafile-esm.json +1 -1
- package/dist/react-native/es/connect-multichain.d.mts +26 -12
- package/dist/react-native/es/connect-multichain.mjs +827 -592
- package/dist/react-native/es/connect-multichain.mjs.map +1 -1
- package/dist/react-native/es/metafile-esm.json +1 -1
- package/dist/src/domain/multichain/index.d.ts +4 -4
- package/dist/src/domain/multichain/index.d.ts.map +1 -1
- package/dist/src/domain/multichain/index.js.map +1 -1
- package/dist/src/domain/multichain/types.d.ts +4 -6
- package/dist/src/domain/multichain/types.d.ts.map +1 -1
- package/dist/src/domain/ui/types.d.ts +7 -0
- package/dist/src/domain/ui/types.d.ts.map +1 -1
- package/dist/src/domain/ui/types.js.map +1 -1
- package/dist/src/index.browser.d.ts +1 -1
- package/dist/src/index.browser.d.ts.map +1 -1
- package/dist/src/index.browser.js +1 -1
- package/dist/src/index.browser.js.map +1 -1
- package/dist/src/index.native.d.ts +1 -1
- package/dist/src/index.native.d.ts.map +1 -1
- package/dist/src/index.native.js +2 -2
- package/dist/src/index.native.js.map +1 -1
- package/dist/src/index.node.d.ts +1 -1
- package/dist/src/index.node.d.ts.map +1 -1
- package/dist/src/index.node.js +1 -1
- package/dist/src/index.node.js.map +1 -1
- package/dist/src/multichain/index.d.ts +8 -27
- package/dist/src/multichain/index.d.ts.map +1 -1
- package/dist/src/multichain/index.js +480 -427
- package/dist/src/multichain/index.js.map +1 -1
- package/dist/src/multichain/rpc/requestRouter.d.ts.map +1 -1
- package/dist/src/multichain/rpc/requestRouter.js +8 -15
- package/dist/src/multichain/rpc/requestRouter.js.map +1 -1
- package/dist/src/multichain/transports/default/index.d.ts +2 -1
- package/dist/src/multichain/transports/default/index.d.ts.map +1 -1
- package/dist/src/multichain/transports/default/index.js +1 -0
- package/dist/src/multichain/transports/default/index.js.map +1 -1
- package/dist/src/multichain/transports/multichainApiClientWrapper/index.d.ts +21 -0
- package/dist/src/multichain/transports/multichainApiClientWrapper/index.d.ts.map +1 -0
- package/dist/src/multichain/transports/multichainApiClientWrapper/index.js +159 -0
- package/dist/src/multichain/transports/multichainApiClientWrapper/index.js.map +1 -0
- package/dist/src/multichain/transports/mwp/index.d.ts +4 -1
- package/dist/src/multichain/transports/mwp/index.d.ts.map +1 -1
- package/dist/src/multichain/transports/mwp/index.js +76 -6
- package/dist/src/multichain/transports/mwp/index.js.map +1 -1
- package/dist/src/ui/ModalFactory.d.ts +54 -0
- package/dist/src/ui/ModalFactory.d.ts.map +1 -0
- package/dist/src/ui/ModalFactory.js +171 -0
- package/dist/src/ui/ModalFactory.js.map +1 -0
- package/dist/src/ui/index.d.ts +11 -39
- package/dist/src/ui/index.d.ts.map +1 -1
- package/dist/src/ui/index.js +20 -179
- package/dist/src/ui/index.js.map +1 -1
- package/dist/src/ui/index.native.d.ts +13 -0
- package/dist/src/ui/index.native.d.ts.map +1 -0
- package/dist/src/ui/index.native.js +24 -0
- package/dist/src/ui/index.native.js.map +1 -0
- package/dist/src/ui/modals/base/AbstractInstallModal.d.ts.map +1 -1
- package/dist/src/ui/modals/base/AbstractInstallModal.js +0 -4
- package/dist/src/ui/modals/base/AbstractInstallModal.js.map +1 -1
- package/dist/src/ui/modals/node/install.js +2 -2
- package/dist/src/ui/modals/node/install.js.map +1 -1
- package/dist/types/connect-multichain.d.ts +26 -12
- package/package.json +10 -8
- package/dist/src/ui/qr.d.ts +0 -3
- package/dist/src/ui/qr.d.ts.map +0 -1
- package/dist/src/ui/qr.js +0 -32
- package/dist/src/ui/qr.js.map +0 -1
|
@@ -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
|
-
|
|
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
|
|
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
|
|
|
@@ -393,16 +402,13 @@ type MultichainOptions = {
|
|
|
393
402
|
};
|
|
394
403
|
/** Analytics configuration */
|
|
395
404
|
analytics?: {
|
|
396
|
-
enabled: false;
|
|
397
|
-
} | {
|
|
398
|
-
enabled: true;
|
|
399
405
|
integrationType: string;
|
|
400
406
|
};
|
|
401
407
|
/** Storage client for persisting SDK data */
|
|
402
408
|
storage: StoreClient;
|
|
403
409
|
/** UI configuration options */
|
|
404
410
|
ui: {
|
|
405
|
-
factory:
|
|
411
|
+
factory: BaseModalFactory;
|
|
406
412
|
headless?: boolean;
|
|
407
413
|
preferExtension?: boolean;
|
|
408
414
|
showInstallModal?: boolean;
|
|
@@ -439,6 +445,7 @@ type ExtendedTransport = Omit<Transport, 'connect'> & {
|
|
|
439
445
|
connect: (props?: {
|
|
440
446
|
scopes: Scope[];
|
|
441
447
|
caipAccountIds: CaipAccountId[];
|
|
448
|
+
sessionProperties?: SessionProperties;
|
|
442
449
|
forceRequest?: boolean;
|
|
443
450
|
}) => Promise<void>;
|
|
444
451
|
sendEip1193Message: <TRequest extends TransportRequest, TResponse extends TransportResponse>(request: TRequest, options?: {
|
|
@@ -453,7 +460,7 @@ declare const SDK_HANDLED_METHODS: Set<string>;
|
|
|
453
460
|
|
|
454
461
|
declare function getInfuraRpcUrls(infuraAPIKey: string): RpcUrlsMap;
|
|
455
462
|
|
|
456
|
-
type
|
|
463
|
+
type ConnectionStatus = 'pending' | 'loaded' | 'disconnected' | 'connected' | 'connecting';
|
|
457
464
|
declare enum TransportType {
|
|
458
465
|
Browser = "browser",
|
|
459
466
|
MWP = "mwp",
|
|
@@ -468,7 +475,7 @@ declare enum TransportType {
|
|
|
468
475
|
declare abstract class MultichainCore extends EventEmitter<SDKEvents> {
|
|
469
476
|
protected readonly options: MultichainOptions;
|
|
470
477
|
abstract storage: StoreClient;
|
|
471
|
-
abstract
|
|
478
|
+
abstract status: ConnectionStatus;
|
|
472
479
|
abstract provider: MultichainApiClient<RPCAPI>;
|
|
473
480
|
abstract transport: ExtendedTransport;
|
|
474
481
|
abstract transportType: TransportType;
|
|
@@ -477,7 +484,7 @@ declare abstract class MultichainCore extends EventEmitter<SDKEvents> {
|
|
|
477
484
|
*
|
|
478
485
|
* @returns Promise that resolves to the session data
|
|
479
486
|
*/
|
|
480
|
-
abstract connect(scopes: Scope[], caipAccountIds: CaipAccountId[], forceRequest?: boolean): Promise<void>;
|
|
487
|
+
abstract connect(scopes: Scope[], caipAccountIds: CaipAccountId[], sessionProperties?: SessionProperties, forceRequest?: boolean): Promise<void>;
|
|
481
488
|
/**
|
|
482
489
|
* Disconnects from the multichain provider.
|
|
483
490
|
*
|
|
@@ -581,6 +588,13 @@ type InstallWidgetProps = Components.MmInstallModal & {
|
|
|
581
588
|
startDesktopOnboarding: () => void;
|
|
582
589
|
createConnectionRequest: () => Promise<ConnectionRequest>;
|
|
583
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;
|
|
584
598
|
};
|
|
585
599
|
type OTPCodeWidgetProps = Components.MmOtpModal & {
|
|
586
600
|
parentElement?: Element;
|
|
@@ -635,6 +649,6 @@ declare function getWalletActionAnalyticsProperties(options: MultichainOptions,
|
|
|
635
649
|
*/
|
|
636
650
|
declare function getVersion(): string;
|
|
637
651
|
|
|
638
|
-
declare const
|
|
652
|
+
declare const createMultichainClient: CreateMultichainFN;
|
|
639
653
|
|
|
640
|
-
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,
|
|
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 };
|