@metamask/connect-multichain 0.2.0 → 0.2.1

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 (42) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/dist/browser/es/connect-multichain.d.mts +25 -1
  3. package/dist/browser/es/connect-multichain.mjs +437 -234
  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 +25 -1
  7. package/dist/browser/iife/connect-multichain.js +21353 -14490
  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 +25 -1
  11. package/dist/browser/umd/connect-multichain.js +434 -231
  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 +25 -1
  15. package/dist/node/cjs/connect-multichain.js +437 -232
  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 +25 -1
  19. package/dist/node/es/connect-multichain.mjs +438 -235
  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 +25 -1
  23. package/dist/react-native/es/connect-multichain.mjs +437 -234
  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/utils/index.d.ts +1 -0
  27. package/dist/src/domain/utils/index.d.ts.map +1 -1
  28. package/dist/src/domain/utils/index.js +1 -0
  29. package/dist/src/domain/utils/index.js.map +1 -1
  30. package/dist/src/multichain/index.d.ts.map +1 -1
  31. package/dist/src/multichain/index.js +73 -17
  32. package/dist/src/multichain/index.js.map +1 -1
  33. package/dist/src/multichain/rpc/requestRouter.d.ts +1 -0
  34. package/dist/src/multichain/rpc/requestRouter.d.ts.map +1 -1
  35. package/dist/src/multichain/rpc/requestRouter.js +69 -13
  36. package/dist/src/multichain/rpc/requestRouter.js.map +1 -1
  37. package/dist/src/multichain/utils/analytics.d.ts +39 -0
  38. package/dist/src/multichain/utils/analytics.d.ts.map +1 -0
  39. package/dist/src/multichain/utils/analytics.js +83 -0
  40. package/dist/src/multichain/utils/analytics.js.map +1 -0
  41. package/dist/types/connect-multichain.d.ts +25 -1
  42. package/package.json +2 -2
@@ -0,0 +1,39 @@
1
+ import type { InvokeMethodOptions, MultichainOptions, PlatformType, StoreClient } from '../../domain';
2
+ /**
3
+ * Checks if an error represents a user rejection.
4
+ *
5
+ * @param error - The error object to check
6
+ * @returns True if the error indicates a user rejection, false otherwise
7
+ */
8
+ export declare function isRejectionError(error: unknown): boolean;
9
+ /**
10
+ * Gets base analytics properties that are common across all events.
11
+ *
12
+ * @param options - Multichain options containing dapp and analytics config
13
+ * @param storage - Storage client for getting anonymous ID
14
+ * @returns Base analytics properties
15
+ */
16
+ export declare function getBaseAnalyticsProperties(options: MultichainOptions, storage: StoreClient): Promise<{
17
+ mmconnect_version: string;
18
+ dapp_id: string;
19
+ platform: PlatformType;
20
+ integration_type: string;
21
+ anon_id: string;
22
+ }>;
23
+ /**
24
+ * Gets analytics properties specific to wallet action events.
25
+ *
26
+ * @param options - Multichain options containing dapp and analytics config
27
+ * @param storage - Storage client for getting anonymous ID
28
+ * @param invokeOptions - The invoke method options containing method and scope
29
+ * @returns Wallet action analytics properties
30
+ */
31
+ export declare function getWalletActionAnalyticsProperties(options: MultichainOptions, storage: StoreClient, invokeOptions: InvokeMethodOptions): Promise<{
32
+ mmconnect_version: string;
33
+ dapp_id: string;
34
+ method: string;
35
+ integration_type: string;
36
+ caip_chain_id: string;
37
+ anon_id: string;
38
+ }>;
39
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../../src/multichain/utils/analytics.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EAEZ,WAAW,EACZ,MAAM,cAAc,CAAC;AAGtB;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAiBxD;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IACT,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAgBD;AAED;;;;;;;GAOG;AACH,wBAAsB,kCAAkC,CACtD,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC;IACT,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAgBD"}
@@ -0,0 +1,83 @@
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
+ /* eslint-disable @typescript-eslint/naming-convention */
11
+ import { getDappId } from '.';
12
+ import { getPlatformType, getVersion, TransportType } from '../../domain';
13
+ /**
14
+ * Checks if an error represents a user rejection.
15
+ *
16
+ * @param error - The error object to check
17
+ * @returns True if the error indicates a user rejection, false otherwise
18
+ */
19
+ export function isRejectionError(error) {
20
+ var _a, _b;
21
+ if (typeof error !== 'object' || error === null) {
22
+ return false;
23
+ }
24
+ const errorObj = error;
25
+ const errorCode = errorObj.code;
26
+ const errorMessage = (_b = (_a = errorObj.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
27
+ return (errorCode === 4001 || // User rejected request (common EIP-1193 code)
28
+ errorCode === 4100 || // Unauthorized (common rejection code)
29
+ errorMessage.includes('reject') ||
30
+ errorMessage.includes('denied') ||
31
+ errorMessage.includes('cancel') ||
32
+ errorMessage.includes('user'));
33
+ }
34
+ /**
35
+ * Gets base analytics properties that are common across all events.
36
+ *
37
+ * @param options - Multichain options containing dapp and analytics config
38
+ * @param storage - Storage client for getting anonymous ID
39
+ * @returns Base analytics properties
40
+ */
41
+ export function getBaseAnalyticsProperties(options, storage) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ var _a, _b;
44
+ const version = getVersion();
45
+ const dappId = getDappId(options.dapp);
46
+ const platform = getPlatformType();
47
+ const anonId = yield storage.getAnonId();
48
+ const integrationType = (_b = (_a = options.analytics) === null || _a === void 0 ? void 0 : _a.integrationType) !== null && _b !== void 0 ? _b : TransportType.UNKNOWN;
49
+ return {
50
+ mmconnect_version: version,
51
+ dapp_id: dappId,
52
+ platform,
53
+ integration_type: integrationType,
54
+ anon_id: anonId,
55
+ };
56
+ });
57
+ }
58
+ /**
59
+ * Gets analytics properties specific to wallet action events.
60
+ *
61
+ * @param options - Multichain options containing dapp and analytics config
62
+ * @param storage - Storage client for getting anonymous ID
63
+ * @param invokeOptions - The invoke method options containing method and scope
64
+ * @returns Wallet action analytics properties
65
+ */
66
+ export function getWalletActionAnalyticsProperties(options, storage, invokeOptions) {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ var _a, _b;
69
+ const version = getVersion();
70
+ const dappId = getDappId(options.dapp);
71
+ const anonId = yield storage.getAnonId();
72
+ const integrationType = (_b = (_a = options.analytics) === null || _a === void 0 ? void 0 : _a.integrationType) !== null && _b !== void 0 ? _b : 'unknown';
73
+ return {
74
+ mmconnect_version: version,
75
+ dapp_id: dappId,
76
+ method: invokeOptions.request.method,
77
+ integration_type: integrationType,
78
+ caip_chain_id: invokeOptions.scope,
79
+ anon_id: anonId,
80
+ };
81
+ });
82
+ }
83
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../../src/multichain/utils/analytics.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAAyD;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAQ9B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,KAA4C,CAAC;IAC9D,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;IAChC,MAAM,YAAY,GAAG,MAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,WAAW,EAAE,mCAAI,EAAE,CAAC;IAE3D,OAAO,CACL,SAAS,KAAK,IAAI,IAAI,+CAA+C;QACrE,SAAS,KAAK,IAAI,IAAI,uCAAuC;QAC7D,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/B,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/B,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/B,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAgB,0BAA0B,CAC9C,OAA0B,EAC1B,OAAoB;;;QAQpB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,eAAe,GACnB,MAAA,MAAC,OAAO,CAAC,SAAwD,0CAC7D,eAAe,mCAAI,aAAa,CAAC,OAAO,CAAC;QAE/C,OAAO;YACL,iBAAiB,EAAE,OAAO;YAC1B,OAAO,EAAE,MAAM;YACf,QAAQ;YACR,gBAAgB,EAAE,eAAe;YACjC,OAAO,EAAE,MAAM;SAChB,CAAC;IACJ,CAAC;CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAgB,kCAAkC,CACtD,OAA0B,EAC1B,OAAoB,EACpB,aAAkC;;;QASlC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,eAAe,GACnB,MAAA,MAAC,OAAO,CAAC,SAAwD,0CAC7D,eAAe,mCAAI,SAAS,CAAC;QAEnC,OAAO;YACL,iBAAiB,EAAE,OAAO;YAC1B,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM;YACpC,gBAAgB,EAAE,eAAe;YACjC,aAAa,EAAE,aAAa,CAAC,KAAK;YAClC,OAAO,EAAE,MAAM;SAChB,CAAC;IACJ,CAAC;CAAA"}
@@ -603,6 +603,30 @@ declare abstract class Modal<Options, Data extends DataType = DataType> {
603
603
  set data(data: Data);
604
604
  }
605
605
 
606
+ /**
607
+ * Checks if an error represents a user rejection.
608
+ *
609
+ * @param error - The error object to check
610
+ * @returns True if the error indicates a user rejection, false otherwise
611
+ */
612
+ declare function isRejectionError(error: unknown): boolean;
613
+ /**
614
+ * Gets analytics properties specific to wallet action events.
615
+ *
616
+ * @param options - Multichain options containing dapp and analytics config
617
+ * @param storage - Storage client for getting anonymous ID
618
+ * @param invokeOptions - The invoke method options containing method and scope
619
+ * @returns Wallet action analytics properties
620
+ */
621
+ declare function getWalletActionAnalyticsProperties(options: MultichainOptions, storage: StoreClient, invokeOptions: InvokeMethodOptions): Promise<{
622
+ mmconnect_version: string;
623
+ dapp_id: string;
624
+ method: string;
625
+ integration_type: string;
626
+ caip_chain_id: string;
627
+ anon_id: string;
628
+ }>;
629
+
606
630
  /**
607
631
  * Returns the version of the Multichain SDK.
608
632
  *
@@ -612,4 +636,4 @@ declare function getVersion(): string;
612
636
 
613
637
  declare const createMetamaskConnect: CreateMultichainFN;
614
638
 
615
- 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, hasExtension, infuraRpcUrls, isEnabled, isMetamaskExtensionInstalled, isSecure };
639
+ 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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/connect-multichain",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Multichain package for MetaMask Connect",
5
5
  "keywords": [
6
6
  "MetaMask",
@@ -66,7 +66,7 @@
66
66
  "test:watch": "vitest watch"
67
67
  },
68
68
  "dependencies": {
69
- "@metamask/analytics": "^0.1.1",
69
+ "@metamask/analytics": "^0.2.0",
70
70
  "@metamask/mobile-wallet-protocol-core": "^0.3.0",
71
71
  "@metamask/mobile-wallet-protocol-dapp-client": "^0.2.1",
72
72
  "@metamask/multichain-api-client": "^0.8.1",