@metamask/connect-multichain 0.5.3 → 0.6.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 (60) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/README.md +9 -3
  3. package/dist/browser/es/connect-multichain.d.mts +27 -4
  4. package/dist/browser/es/connect-multichain.mjs +603 -333
  5. package/dist/browser/es/connect-multichain.mjs.map +1 -1
  6. package/dist/browser/es/metafile-esm.json +1 -1
  7. package/dist/browser/iife/connect-multichain.d.ts +27 -4
  8. package/dist/browser/iife/connect-multichain.js +3363 -2993
  9. package/dist/browser/iife/connect-multichain.js.map +1 -1
  10. package/dist/browser/iife/metafile-iife.json +1 -1
  11. package/dist/browser/umd/connect-multichain.d.ts +27 -4
  12. package/dist/browser/umd/connect-multichain.js +603 -333
  13. package/dist/browser/umd/connect-multichain.js.map +1 -1
  14. package/dist/browser/umd/metafile-cjs.json +1 -1
  15. package/dist/node/cjs/connect-multichain.d.ts +27 -4
  16. package/dist/node/cjs/connect-multichain.js +421 -151
  17. package/dist/node/cjs/connect-multichain.js.map +1 -1
  18. package/dist/node/cjs/metafile-cjs.json +1 -1
  19. package/dist/node/es/connect-multichain.d.mts +27 -4
  20. package/dist/node/es/connect-multichain.mjs +421 -151
  21. package/dist/node/es/connect-multichain.mjs.map +1 -1
  22. package/dist/node/es/metafile-esm.json +1 -1
  23. package/dist/react-native/es/connect-multichain.d.mts +27 -4
  24. package/dist/react-native/es/connect-multichain.mjs +596 -326
  25. package/dist/react-native/es/connect-multichain.mjs.map +1 -1
  26. package/dist/react-native/es/metafile-esm.json +1 -1
  27. package/dist/src/domain/multichain/index.d.ts +15 -4
  28. package/dist/src/domain/multichain/index.d.ts.map +1 -1
  29. package/dist/src/domain/multichain/index.js +14 -0
  30. package/dist/src/domain/multichain/index.js.map +1 -1
  31. package/dist/src/domain/multichain/types.d.ts +12 -0
  32. package/dist/src/domain/multichain/types.d.ts.map +1 -1
  33. package/dist/src/multichain/index.d.ts +3 -2
  34. package/dist/src/multichain/index.d.ts.map +1 -1
  35. package/dist/src/multichain/index.js +158 -61
  36. package/dist/src/multichain/index.js.map +1 -1
  37. package/dist/src/multichain/transports/default/index.d.ts +3 -1
  38. package/dist/src/multichain/transports/default/index.d.ts.map +1 -1
  39. package/dist/src/multichain/transports/default/index.js +17 -11
  40. package/dist/src/multichain/transports/default/index.js.map +1 -1
  41. package/dist/src/multichain/transports/multichainApiClientWrapper/index.d.ts +3 -1
  42. package/dist/src/multichain/transports/multichainApiClientWrapper/index.d.ts.map +1 -1
  43. package/dist/src/multichain/transports/multichainApiClientWrapper/index.js +28 -31
  44. package/dist/src/multichain/transports/multichainApiClientWrapper/index.js.map +1 -1
  45. package/dist/src/multichain/transports/mwp/index.d.ts +15 -2
  46. package/dist/src/multichain/transports/mwp/index.d.ts.map +1 -1
  47. package/dist/src/multichain/transports/mwp/index.js +155 -38
  48. package/dist/src/multichain/transports/mwp/index.js.map +1 -1
  49. package/dist/src/multichain/utils/index.d.ts +23 -0
  50. package/dist/src/multichain/utils/index.d.ts.map +1 -1
  51. package/dist/src/multichain/utils/index.js +57 -4
  52. package/dist/src/multichain/utils/index.js.map +1 -1
  53. package/dist/src/polyfills/buffer-shim.js +4 -14
  54. package/dist/src/polyfills/buffer-shim.js.map +1 -1
  55. package/dist/src/store/adapters/web.d.ts +1 -1
  56. package/dist/src/store/adapters/web.d.ts.map +1 -1
  57. package/dist/src/store/adapters/web.js +1 -1
  58. package/dist/src/store/adapters/web.js.map +1 -1
  59. package/dist/types/connect-multichain.d.ts +27 -4
  60. package/package.json +1 -1
@@ -435,6 +435,16 @@ type MultiChainFNOptions = Omit<MultichainOptions, 'storage' | 'ui'> & {
435
435
  } & {
436
436
  storage?: StoreClient;
437
437
  };
438
+ /**
439
+ * Options that can be merged/overwritten when createMultichainClient is called
440
+ * with an existing singleton.
441
+ */
442
+ type MergeableMultichainOptions = Omit<MultichainOptions, 'dapp' | 'analytics' | 'storage' | 'api' | 'ui' | 'transport'> & {
443
+ api?: MultichainOptions['api'];
444
+ ui?: Pick<MultichainOptions['ui'], 'headless' | 'preferExtension' | 'showInstallModal'>;
445
+ transport?: Pick<NonNullable<MultichainOptions['transport']>, 'extensionId'>;
446
+ debug?: boolean;
447
+ };
438
448
  /**
439
449
  * Complete options for Multichain SDK configuration.
440
450
  *
@@ -453,6 +463,8 @@ type ExtendedTransport = Omit<Transport, 'connect'> & {
453
463
  timeout?: number;
454
464
  }) => Promise<TResponse>;
455
465
  getActiveSession: () => Promise<Session | undefined>;
466
+ getStoredPendingSessionRequest: () => Promise<SessionRequest | null>;
467
+ disconnect: (scopes: Scope[]) => Promise<void>;
456
468
  };
457
469
 
458
470
  declare const infuraRpcUrls: RpcUrlsMap;
@@ -474,7 +486,7 @@ declare enum TransportType {
474
486
  * must provide, including session management, connection handling, and method invocation.
475
487
  */
476
488
  declare abstract class MultichainCore extends EventEmitter<SDKEvents> {
477
- protected readonly options: MultichainOptions;
489
+ protected options: MultichainOptions;
478
490
  abstract storage: StoreClient;
479
491
  abstract status: ConnectionStatus;
480
492
  abstract provider: MultichainApiClient<RPCAPI>;
@@ -491,7 +503,7 @@ declare abstract class MultichainCore extends EventEmitter<SDKEvents> {
491
503
  *
492
504
  * @returns Promise that resolves when disconnection is complete
493
505
  */
494
- abstract disconnect(): Promise<void>;
506
+ abstract disconnect(scopes?: Scope[]): Promise<void>;
495
507
  /**
496
508
  * Invokes an RPC method with the specified options.
497
509
  *
@@ -499,8 +511,19 @@ declare abstract class MultichainCore extends EventEmitter<SDKEvents> {
499
511
  * @returns Promise that resolves to the method result
500
512
  */
501
513
  abstract invokeMethod(options: InvokeMethodOptions): Promise<Json>;
502
- abstract openDeeplinkIfNeeded(): void;
514
+ abstract openSimpleDeeplinkIfNeeded(): void;
515
+ abstract emitSessionChanged(): Promise<void>;
503
516
  constructor(options: MultichainOptions);
517
+ /**
518
+ * Merges the given options into the current instance options.
519
+ * Only the mergeable keys are updated (api.supportedNetworks, ui.*, mobile.*, transport.extensionId, debug).
520
+ * The main thing to note is that the value for `dapp` is not merged as it does not make sense for
521
+ * subsequent calls to `createMultichainClient` to have a different `dapp` value.
522
+ * Used when createMultichainClient is called with an existing singleton.
523
+ *
524
+ * @param partial - Options to merge/overwrite onto the current instance
525
+ */
526
+ mergeOptions(partial: MergeableMultichainOptions): void;
504
527
  }
505
528
  declare function getTransportType(type: string): TransportType;
506
529
 
@@ -652,4 +675,4 @@ declare function getVersion(): string;
652
675
 
653
676
  declare const createMultichainClient: CreateMultichainFN;
654
677
 
655
- 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 };
678
+ 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, type MergeableMultichainOptions, 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 };