@metamask/connect-multichain 0.5.3 → 0.7.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 +41 -1
  2. package/README.md +30 -22
  3. package/dist/browser/es/connect-multichain.d.mts +29 -4
  4. package/dist/browser/es/connect-multichain.mjs +636 -335
  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 +29 -4
  8. package/dist/browser/iife/connect-multichain.js +3487 -3072
  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 +29 -4
  12. package/dist/browser/umd/connect-multichain.js +636 -335
  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 +29 -4
  16. package/dist/node/cjs/connect-multichain.js +454 -153
  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 +29 -4
  20. package/dist/node/es/connect-multichain.mjs +454 -153
  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 +29 -4
  24. package/dist/react-native/es/connect-multichain.mjs +629 -328
  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 +14 -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 -32
  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 +161 -39
  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 +94 -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 +29 -4
  60. package/package.json +2 -2
@@ -369,6 +369,8 @@ declare function hasExtension(): Promise<boolean>;
369
369
  type DappSettings = {
370
370
  name: string;
371
371
  url?: string;
372
+ /** The original non-http(s) URL before normalization on React Native platforms */
373
+ nativeScheme?: string;
372
374
  } & ({
373
375
  iconUrl?: string;
374
376
  } | {
@@ -435,6 +437,16 @@ type MultiChainFNOptions = Omit<MultichainOptions, 'storage' | 'ui'> & {
435
437
  } & {
436
438
  storage?: StoreClient;
437
439
  };
440
+ /**
441
+ * Options that can be merged/overwritten when createMultichainClient is called
442
+ * with an existing singleton.
443
+ */
444
+ type MergeableMultichainOptions = Omit<MultichainOptions, 'dapp' | 'analytics' | 'storage' | 'api' | 'ui' | 'transport'> & {
445
+ api?: MultichainOptions['api'];
446
+ ui?: Pick<MultichainOptions['ui'], 'headless' | 'preferExtension' | 'showInstallModal'>;
447
+ transport?: Pick<NonNullable<MultichainOptions['transport']>, 'extensionId'>;
448
+ debug?: boolean;
449
+ };
438
450
  /**
439
451
  * Complete options for Multichain SDK configuration.
440
452
  *
@@ -453,6 +465,8 @@ type ExtendedTransport = Omit<Transport, 'connect'> & {
453
465
  timeout?: number;
454
466
  }) => Promise<TResponse>;
455
467
  getActiveSession: () => Promise<Session | undefined>;
468
+ getStoredPendingSessionRequest: () => Promise<SessionRequest | null>;
469
+ disconnect: (scopes: Scope[]) => Promise<void>;
456
470
  };
457
471
 
458
472
  declare const infuraRpcUrls: RpcUrlsMap;
@@ -474,7 +488,7 @@ declare enum TransportType {
474
488
  * must provide, including session management, connection handling, and method invocation.
475
489
  */
476
490
  declare abstract class MultichainCore extends EventEmitter<SDKEvents> {
477
- protected readonly options: MultichainOptions;
491
+ protected options: MultichainOptions;
478
492
  abstract storage: StoreClient;
479
493
  abstract status: ConnectionStatus;
480
494
  abstract provider: MultichainApiClient<RPCAPI>;
@@ -491,7 +505,7 @@ declare abstract class MultichainCore extends EventEmitter<SDKEvents> {
491
505
  *
492
506
  * @returns Promise that resolves when disconnection is complete
493
507
  */
494
- abstract disconnect(): Promise<void>;
508
+ abstract disconnect(scopes?: Scope[]): Promise<void>;
495
509
  /**
496
510
  * Invokes an RPC method with the specified options.
497
511
  *
@@ -499,8 +513,19 @@ declare abstract class MultichainCore extends EventEmitter<SDKEvents> {
499
513
  * @returns Promise that resolves to the method result
500
514
  */
501
515
  abstract invokeMethod(options: InvokeMethodOptions): Promise<Json>;
502
- abstract openDeeplinkIfNeeded(): void;
516
+ abstract openSimpleDeeplinkIfNeeded(): void;
517
+ abstract emitSessionChanged(): Promise<void>;
503
518
  constructor(options: MultichainOptions);
519
+ /**
520
+ * Merges the given options into the current instance options.
521
+ * Only the mergeable keys are updated (api.supportedNetworks, ui.*, mobile.*, transport.extensionId, debug).
522
+ * The main thing to note is that the value for `dapp` is not merged as it does not make sense for
523
+ * subsequent calls to `createMultichainClient` to have a different `dapp` value.
524
+ * Used when createMultichainClient is called with an existing singleton.
525
+ *
526
+ * @param partial - Options to merge/overwrite onto the current instance
527
+ */
528
+ mergeOptions(partial: MergeableMultichainOptions): void;
504
529
  }
505
530
  declare function getTransportType(type: string): TransportType;
506
531
 
@@ -652,4 +677,4 @@ declare function getVersion(): string;
652
677
 
653
678
  declare const createMultichainClient: CreateMultichainFN;
654
679
 
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 };
680
+ 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 };