@metamask/bridge-controller 37.2.0 → 39.0.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 (76) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/dist/bridge-controller.cjs +2 -3
  3. package/dist/bridge-controller.cjs.map +1 -1
  4. package/dist/bridge-controller.d.cts.map +1 -1
  5. package/dist/bridge-controller.d.mts.map +1 -1
  6. package/dist/bridge-controller.mjs +4 -5
  7. package/dist/bridge-controller.mjs.map +1 -1
  8. package/dist/constants/bridge.cjs +1 -2
  9. package/dist/constants/bridge.cjs.map +1 -1
  10. package/dist/constants/bridge.d.cts +1 -1
  11. package/dist/constants/bridge.d.cts.map +1 -1
  12. package/dist/constants/bridge.d.mts +1 -1
  13. package/dist/constants/bridge.d.mts.map +1 -1
  14. package/dist/constants/bridge.mjs +1 -2
  15. package/dist/constants/bridge.mjs.map +1 -1
  16. package/dist/index.cjs +2 -3
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +1 -1
  19. package/dist/index.d.cts.map +1 -1
  20. package/dist/index.d.mts +1 -1
  21. package/dist/index.d.mts.map +1 -1
  22. package/dist/index.mjs +1 -1
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/selectors.cjs +7 -2
  25. package/dist/selectors.cjs.map +1 -1
  26. package/dist/selectors.d.cts +312 -90
  27. package/dist/selectors.d.cts.map +1 -1
  28. package/dist/selectors.d.mts +312 -90
  29. package/dist/selectors.d.mts.map +1 -1
  30. package/dist/selectors.mjs +7 -2
  31. package/dist/selectors.mjs.map +1 -1
  32. package/dist/types.cjs.map +1 -1
  33. package/dist/types.d.cts +8 -1
  34. package/dist/types.d.cts.map +1 -1
  35. package/dist/types.d.mts +8 -1
  36. package/dist/types.d.mts.map +1 -1
  37. package/dist/types.mjs.map +1 -1
  38. package/dist/utils/metrics/constants.cjs +3 -0
  39. package/dist/utils/metrics/constants.cjs.map +1 -1
  40. package/dist/utils/metrics/constants.d.cts +3 -0
  41. package/dist/utils/metrics/constants.d.cts.map +1 -1
  42. package/dist/utils/metrics/constants.d.mts +3 -0
  43. package/dist/utils/metrics/constants.d.mts.map +1 -1
  44. package/dist/utils/metrics/constants.mjs +3 -0
  45. package/dist/utils/metrics/constants.mjs.map +1 -1
  46. package/dist/utils/metrics/properties.cjs +1 -12
  47. package/dist/utils/metrics/properties.cjs.map +1 -1
  48. package/dist/utils/metrics/properties.d.cts +2 -4
  49. package/dist/utils/metrics/properties.d.cts.map +1 -1
  50. package/dist/utils/metrics/properties.d.mts +2 -4
  51. package/dist/utils/metrics/properties.d.mts.map +1 -1
  52. package/dist/utils/metrics/properties.mjs +1 -10
  53. package/dist/utils/metrics/properties.mjs.map +1 -1
  54. package/dist/utils/metrics/types.cjs.map +1 -1
  55. package/dist/utils/metrics/types.d.cts +8 -11
  56. package/dist/utils/metrics/types.d.cts.map +1 -1
  57. package/dist/utils/metrics/types.d.mts +8 -11
  58. package/dist/utils/metrics/types.d.mts.map +1 -1
  59. package/dist/utils/metrics/types.mjs.map +1 -1
  60. package/dist/utils/quote.cjs +60 -23
  61. package/dist/utils/quote.cjs.map +1 -1
  62. package/dist/utils/quote.d.cts +12 -11
  63. package/dist/utils/quote.d.cts.map +1 -1
  64. package/dist/utils/quote.d.mts +12 -11
  65. package/dist/utils/quote.d.mts.map +1 -1
  66. package/dist/utils/quote.mjs +60 -23
  67. package/dist/utils/quote.mjs.map +1 -1
  68. package/dist/utils/validators.cjs +1 -0
  69. package/dist/utils/validators.cjs.map +1 -1
  70. package/dist/utils/validators.d.cts +9 -0
  71. package/dist/utils/validators.d.cts.map +1 -1
  72. package/dist/utils/validators.d.mts +9 -0
  73. package/dist/utils/validators.d.mts.map +1 -1
  74. package/dist/utils/validators.mjs +1 -0
  75. package/dist/utils/validators.mjs.map +1 -1
  76. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"properties.cjs","sourceRoot":"","sources":["../../../src/utils/metrics/properties.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CaipChainId } from '@metamask/utils';\n\nimport { MetricsActionType, MetricsSwapType } from './constants';\nimport type { InputKeys, InputValues } from './types';\nimport type { AccountsControllerState } from '../../../../accounts-controller/src/AccountsController';\nimport { DEFAULT_BRIDGE_CONTROLLER_STATE } from '../../constants/bridge';\nimport type { BridgeControllerState, QuoteResponse, TxData } from '../../types';\nimport { type GenericQuoteRequest, type QuoteRequest } from '../../types';\nimport { getNativeAssetForChainId, isCrossChain } from '../bridge';\nimport {\n formatAddressToAssetId,\n formatChainIdToCaip,\n} from '../caip-formatters';\n\nexport const toInputChangedPropertyKey: Partial<\n Record<keyof QuoteRequest, InputKeys>\n> = {\n srcTokenAddress: 'token_source',\n destTokenAddress: 'token_destination',\n srcChainId: 'chain_source',\n destChainId: 'chain_destination',\n slippage: 'slippage',\n};\n\nexport const toInputChangedPropertyValue: Partial<\n Record<\n keyof typeof toInputChangedPropertyKey,\n (\n value: Partial<GenericQuoteRequest>,\n ) => InputValues[keyof InputValues] | undefined\n >\n> = {\n srcTokenAddress: ({ srcTokenAddress, srcChainId }) =>\n srcChainId\n ? formatAddressToAssetId(srcTokenAddress ?? '', srcChainId)\n : undefined,\n destTokenAddress: ({ destTokenAddress, destChainId }) =>\n destChainId\n ? formatAddressToAssetId(destTokenAddress ?? '', destChainId)\n : undefined,\n srcChainId: ({ srcChainId }) =>\n srcChainId ? formatChainIdToCaip(srcChainId) : undefined,\n destChainId: ({ destChainId }) =>\n destChainId ? formatChainIdToCaip(destChainId) : undefined,\n slippage: ({ slippage }) => (slippage ? Number(slippage) : slippage),\n};\n\nexport const getActionType = (\n srcChainId?: GenericQuoteRequest['srcChainId'],\n destChainId?: GenericQuoteRequest['destChainId'],\n) => {\n if (srcChainId && !isCrossChain(srcChainId, destChainId ?? srcChainId)) {\n return MetricsActionType.SWAPBRIDGE_V1;\n }\n return MetricsActionType.CROSSCHAIN_V1;\n};\n\nexport const getActionTypeFromQuoteRequest = (\n quoteRequest: Partial<GenericQuoteRequest>,\n) => {\n return getActionType(quoteRequest.srcChainId, quoteRequest.destChainId);\n};\n\nexport const getSwapType = (\n srcChainId?: GenericQuoteRequest['srcChainId'],\n destChainId?: GenericQuoteRequest['destChainId'],\n) => {\n if (srcChainId && !isCrossChain(srcChainId, destChainId ?? srcChainId)) {\n return MetricsSwapType.SINGLE;\n }\n return MetricsSwapType.CROSSCHAIN;\n};\n\nexport const getSwapTypeFromQuote = (\n quoteRequest: Partial<GenericQuoteRequest>,\n) => {\n return getSwapType(quoteRequest.srcChainId, quoteRequest.destChainId);\n};\n\nexport const formatProviderLabel = ({\n bridgeId,\n bridges,\n}: QuoteResponse<TxData | string>['quote']): `${string}_${string}` =>\n `${bridgeId}_${bridges[0]}`;\n\nexport const getRequestParams = (\n {\n destChainId,\n srcTokenAddress,\n destTokenAddress,\n }: BridgeControllerState['quoteRequest'],\n srcChainIdCaip: CaipChainId,\n) => {\n return {\n chain_id_source: srcChainIdCaip,\n chain_id_destination: destChainId ? formatChainIdToCaip(destChainId) : null,\n token_address_source: srcTokenAddress\n ? (formatAddressToAssetId(srcTokenAddress, srcChainIdCaip) ??\n getNativeAssetForChainId(srcChainIdCaip)?.assetId ??\n null)\n : (getNativeAssetForChainId(srcChainIdCaip)?.assetId ?? null),\n token_address_destination: destTokenAddress\n ? (formatAddressToAssetId(\n destTokenAddress,\n destChainId ?? srcChainIdCaip,\n ) ?? null)\n : null,\n };\n};\n\nexport const isHardwareWallet = (\n selectedAccount?: AccountsControllerState['internalAccounts']['accounts'][string],\n) => {\n return selectedAccount?.metadata?.keyring.type?.includes('Hardware') ?? false;\n};\n\nexport const isCustomSlippage = (slippage: GenericQuoteRequest['slippage']) => {\n return slippage !== DEFAULT_BRIDGE_CONTROLLER_STATE.quoteRequest.slippage;\n};\n"]}
1
+ {"version":3,"file":"properties.cjs","sourceRoot":"","sources":["../../../src/utils/metrics/properties.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CaipChainId } from '@metamask/utils';\n\nimport { MetricsSwapType } from './constants';\nimport type { InputKeys, InputValues } from './types';\nimport type { AccountsControllerState } from '../../../../accounts-controller/src/AccountsController';\nimport { DEFAULT_BRIDGE_CONTROLLER_STATE } from '../../constants/bridge';\nimport type { BridgeControllerState, QuoteResponse, TxData } from '../../types';\nimport { type GenericQuoteRequest, type QuoteRequest } from '../../types';\nimport { getNativeAssetForChainId, isCrossChain } from '../bridge';\nimport {\n formatAddressToAssetId,\n formatChainIdToCaip,\n} from '../caip-formatters';\n\nexport const toInputChangedPropertyKey: Partial<\n Record<keyof QuoteRequest, InputKeys>\n> = {\n srcTokenAddress: 'token_source',\n destTokenAddress: 'token_destination',\n srcChainId: 'chain_source',\n destChainId: 'chain_destination',\n slippage: 'slippage',\n};\n\nexport const toInputChangedPropertyValue: Partial<\n Record<\n keyof typeof toInputChangedPropertyKey,\n (\n input_value: Partial<GenericQuoteRequest>,\n ) => InputValues[keyof InputValues] | undefined\n >\n> = {\n srcTokenAddress: ({ srcTokenAddress, srcChainId }) =>\n srcChainId\n ? formatAddressToAssetId(srcTokenAddress ?? '', srcChainId)\n : undefined,\n destTokenAddress: ({ destTokenAddress, destChainId }) =>\n destChainId\n ? formatAddressToAssetId(destTokenAddress ?? '', destChainId)\n : undefined,\n srcChainId: ({ srcChainId }) =>\n srcChainId ? formatChainIdToCaip(srcChainId) : undefined,\n destChainId: ({ destChainId }) =>\n destChainId ? formatChainIdToCaip(destChainId) : undefined,\n slippage: ({ slippage }) => (slippage ? Number(slippage) : slippage),\n};\n\nexport const getSwapType = (\n srcChainId?: GenericQuoteRequest['srcChainId'],\n destChainId?: GenericQuoteRequest['destChainId'],\n) => {\n if (srcChainId && !isCrossChain(srcChainId, destChainId ?? srcChainId)) {\n return MetricsSwapType.SINGLE;\n }\n return MetricsSwapType.CROSSCHAIN;\n};\n\nexport const getSwapTypeFromQuote = (\n quoteRequest: Partial<GenericQuoteRequest>,\n) => {\n return getSwapType(quoteRequest.srcChainId, quoteRequest.destChainId);\n};\n\nexport const formatProviderLabel = ({\n bridgeId,\n bridges,\n}: QuoteResponse<TxData | string>['quote']): `${string}_${string}` =>\n `${bridgeId}_${bridges[0]}`;\n\nexport const getRequestParams = (\n {\n destChainId,\n srcTokenAddress,\n destTokenAddress,\n }: BridgeControllerState['quoteRequest'],\n srcChainIdCaip: CaipChainId,\n) => {\n return {\n chain_id_source: srcChainIdCaip,\n chain_id_destination: destChainId ? formatChainIdToCaip(destChainId) : null,\n token_address_source: srcTokenAddress\n ? (formatAddressToAssetId(srcTokenAddress, srcChainIdCaip) ??\n getNativeAssetForChainId(srcChainIdCaip)?.assetId ??\n null)\n : (getNativeAssetForChainId(srcChainIdCaip)?.assetId ?? null),\n token_address_destination: destTokenAddress\n ? (formatAddressToAssetId(\n destTokenAddress,\n destChainId ?? srcChainIdCaip,\n ) ?? null)\n : null,\n };\n};\n\nexport const isHardwareWallet = (\n selectedAccount?: AccountsControllerState['internalAccounts']['accounts'][string],\n) => {\n return selectedAccount?.metadata?.keyring.type?.includes('Hardware') ?? false;\n};\n\nexport const isCustomSlippage = (slippage: GenericQuoteRequest['slippage']) => {\n return slippage !== DEFAULT_BRIDGE_CONTROLLER_STATE.quoteRequest.slippage;\n};\n"]}
@@ -1,13 +1,11 @@
1
1
  import type { CaipChainId } from "@metamask/utils";
2
- import { MetricsActionType, MetricsSwapType } from "./constants.cjs";
2
+ import { MetricsSwapType } from "./constants.cjs";
3
3
  import type { InputKeys, InputValues } from "./types.cjs";
4
4
  import type { AccountsControllerState } from "../../../../accounts-controller/src/AccountsController.cjs";
5
5
  import type { BridgeControllerState, QuoteResponse, TxData } from "../../types.cjs";
6
6
  import { type GenericQuoteRequest, type QuoteRequest } from "../../types.cjs";
7
7
  export declare const toInputChangedPropertyKey: Partial<Record<keyof QuoteRequest, InputKeys>>;
8
- export declare const toInputChangedPropertyValue: Partial<Record<keyof typeof toInputChangedPropertyKey, (value: Partial<GenericQuoteRequest>) => InputValues[keyof InputValues] | undefined>>;
9
- export declare const getActionType: (srcChainId?: GenericQuoteRequest['srcChainId'], destChainId?: GenericQuoteRequest['destChainId']) => MetricsActionType;
10
- export declare const getActionTypeFromQuoteRequest: (quoteRequest: Partial<GenericQuoteRequest>) => MetricsActionType;
8
+ export declare const toInputChangedPropertyValue: Partial<Record<keyof typeof toInputChangedPropertyKey, (input_value: Partial<GenericQuoteRequest>) => InputValues[keyof InputValues] | undefined>>;
11
9
  export declare const getSwapType: (srcChainId?: GenericQuoteRequest['srcChainId'], destChainId?: GenericQuoteRequest['destChainId']) => MetricsSwapType;
12
10
  export declare const getSwapTypeFromQuote: (quoteRequest: Partial<GenericQuoteRequest>) => MetricsSwapType;
13
11
  export declare const formatProviderLabel: ({ bridgeId, bridges, }: QuoteResponse<TxData | string>['quote']) => `${string}_${string}`;
@@ -1 +1 @@
1
- {"version":3,"file":"properties.d.cts","sourceRoot":"","sources":["../../../src/utils/metrics/properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB;AAEnD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,wBAAoB;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAgB;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,mEAA+D;AAEtG,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,EAAE,wBAAoB;AAChF,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,wBAAoB;AAO1E,eAAO,MAAM,yBAAyB,EAAE,OAAO,CAC7C,MAAM,CAAC,MAAM,YAAY,EAAE,SAAS,CAAC,CAOtC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAC/C,MAAM,CACJ,MAAM,OAAO,yBAAyB,EACtC,CACE,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAChC,WAAW,CAAC,MAAM,WAAW,CAAC,GAAG,SAAS,CAChD,CAeF,CAAC;AAEF,eAAO,MAAM,aAAa,gBACX,mBAAmB,CAAC,YAAY,CAAC,gBAChC,mBAAmB,CAAC,aAAa,CAAC,sBAMjD,CAAC;AAEF,eAAO,MAAM,6BAA6B,iBAC1B,QAAQ,mBAAmB,CAAC,sBAG3C,CAAC;AAEF,eAAO,MAAM,WAAW,gBACT,mBAAmB,CAAC,YAAY,CAAC,gBAChC,mBAAmB,CAAC,aAAa,CAAC,oBAMjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBACjB,QAAQ,mBAAmB,CAAC,oBAG3C,CAAC;AAEF,eAAO,MAAM,mBAAmB,2BAG7B,cAAc,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,KAAG,GAAG,MAAM,IAAI,MAAM,EACnC,CAAC;AAE9B,eAAO,MAAM,gBAAgB,wDAKxB,qBAAqB,CAAC,cAAc,CAAC,kBACxB,WAAW;;;;;CAiB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,qBACT,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAGlF,CAAC;AAEF,eAAO,MAAM,gBAAgB,aAAc,mBAAmB,CAAC,UAAU,CAAC,YAEzE,CAAC"}
1
+ {"version":3,"file":"properties.d.cts","sourceRoot":"","sources":["../../../src/utils/metrics/properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB;AAEnD,OAAO,EAAE,eAAe,EAAE,wBAAoB;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAgB;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,mEAA+D;AAEtG,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,EAAE,wBAAoB;AAChF,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,wBAAoB;AAO1E,eAAO,MAAM,yBAAyB,EAAE,OAAO,CAC7C,MAAM,CAAC,MAAM,YAAY,EAAE,SAAS,CAAC,CAOtC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAC/C,MAAM,CACJ,MAAM,OAAO,yBAAyB,EACtC,CACE,WAAW,EAAE,OAAO,CAAC,mBAAmB,CAAC,KACtC,WAAW,CAAC,MAAM,WAAW,CAAC,GAAG,SAAS,CAChD,CAeF,CAAC;AAEF,eAAO,MAAM,WAAW,gBACT,mBAAmB,CAAC,YAAY,CAAC,gBAChC,mBAAmB,CAAC,aAAa,CAAC,oBAMjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBACjB,QAAQ,mBAAmB,CAAC,oBAG3C,CAAC;AAEF,eAAO,MAAM,mBAAmB,2BAG7B,cAAc,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,KAAG,GAAG,MAAM,IAAI,MAAM,EACnC,CAAC;AAE9B,eAAO,MAAM,gBAAgB,wDAKxB,qBAAqB,CAAC,cAAc,CAAC,kBACxB,WAAW;;;;;CAiB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,qBACT,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAGlF,CAAC;AAEF,eAAO,MAAM,gBAAgB,aAAc,mBAAmB,CAAC,UAAU,CAAC,YAEzE,CAAC"}
@@ -1,13 +1,11 @@
1
1
  import type { CaipChainId } from "@metamask/utils";
2
- import { MetricsActionType, MetricsSwapType } from "./constants.mjs";
2
+ import { MetricsSwapType } from "./constants.mjs";
3
3
  import type { InputKeys, InputValues } from "./types.mjs";
4
4
  import type { AccountsControllerState } from "../../../../accounts-controller/src/AccountsController.mjs";
5
5
  import type { BridgeControllerState, QuoteResponse, TxData } from "../../types.mjs";
6
6
  import { type GenericQuoteRequest, type QuoteRequest } from "../../types.mjs";
7
7
  export declare const toInputChangedPropertyKey: Partial<Record<keyof QuoteRequest, InputKeys>>;
8
- export declare const toInputChangedPropertyValue: Partial<Record<keyof typeof toInputChangedPropertyKey, (value: Partial<GenericQuoteRequest>) => InputValues[keyof InputValues] | undefined>>;
9
- export declare const getActionType: (srcChainId?: GenericQuoteRequest['srcChainId'], destChainId?: GenericQuoteRequest['destChainId']) => MetricsActionType;
10
- export declare const getActionTypeFromQuoteRequest: (quoteRequest: Partial<GenericQuoteRequest>) => MetricsActionType;
8
+ export declare const toInputChangedPropertyValue: Partial<Record<keyof typeof toInputChangedPropertyKey, (input_value: Partial<GenericQuoteRequest>) => InputValues[keyof InputValues] | undefined>>;
11
9
  export declare const getSwapType: (srcChainId?: GenericQuoteRequest['srcChainId'], destChainId?: GenericQuoteRequest['destChainId']) => MetricsSwapType;
12
10
  export declare const getSwapTypeFromQuote: (quoteRequest: Partial<GenericQuoteRequest>) => MetricsSwapType;
13
11
  export declare const formatProviderLabel: ({ bridgeId, bridges, }: QuoteResponse<TxData | string>['quote']) => `${string}_${string}`;
@@ -1 +1 @@
1
- {"version":3,"file":"properties.d.mts","sourceRoot":"","sources":["../../../src/utils/metrics/properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB;AAEnD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,wBAAoB;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAgB;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,mEAA+D;AAEtG,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,EAAE,wBAAoB;AAChF,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,wBAAoB;AAO1E,eAAO,MAAM,yBAAyB,EAAE,OAAO,CAC7C,MAAM,CAAC,MAAM,YAAY,EAAE,SAAS,CAAC,CAOtC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAC/C,MAAM,CACJ,MAAM,OAAO,yBAAyB,EACtC,CACE,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAChC,WAAW,CAAC,MAAM,WAAW,CAAC,GAAG,SAAS,CAChD,CAeF,CAAC;AAEF,eAAO,MAAM,aAAa,gBACX,mBAAmB,CAAC,YAAY,CAAC,gBAChC,mBAAmB,CAAC,aAAa,CAAC,sBAMjD,CAAC;AAEF,eAAO,MAAM,6BAA6B,iBAC1B,QAAQ,mBAAmB,CAAC,sBAG3C,CAAC;AAEF,eAAO,MAAM,WAAW,gBACT,mBAAmB,CAAC,YAAY,CAAC,gBAChC,mBAAmB,CAAC,aAAa,CAAC,oBAMjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBACjB,QAAQ,mBAAmB,CAAC,oBAG3C,CAAC;AAEF,eAAO,MAAM,mBAAmB,2BAG7B,cAAc,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,KAAG,GAAG,MAAM,IAAI,MAAM,EACnC,CAAC;AAE9B,eAAO,MAAM,gBAAgB,wDAKxB,qBAAqB,CAAC,cAAc,CAAC,kBACxB,WAAW;;;;;CAiB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,qBACT,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAGlF,CAAC;AAEF,eAAO,MAAM,gBAAgB,aAAc,mBAAmB,CAAC,UAAU,CAAC,YAEzE,CAAC"}
1
+ {"version":3,"file":"properties.d.mts","sourceRoot":"","sources":["../../../src/utils/metrics/properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB;AAEnD,OAAO,EAAE,eAAe,EAAE,wBAAoB;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAgB;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,mEAA+D;AAEtG,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,EAAE,wBAAoB;AAChF,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,wBAAoB;AAO1E,eAAO,MAAM,yBAAyB,EAAE,OAAO,CAC7C,MAAM,CAAC,MAAM,YAAY,EAAE,SAAS,CAAC,CAOtC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAC/C,MAAM,CACJ,MAAM,OAAO,yBAAyB,EACtC,CACE,WAAW,EAAE,OAAO,CAAC,mBAAmB,CAAC,KACtC,WAAW,CAAC,MAAM,WAAW,CAAC,GAAG,SAAS,CAChD,CAeF,CAAC;AAEF,eAAO,MAAM,WAAW,gBACT,mBAAmB,CAAC,YAAY,CAAC,gBAChC,mBAAmB,CAAC,aAAa,CAAC,oBAMjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBACjB,QAAQ,mBAAmB,CAAC,oBAG3C,CAAC;AAEF,eAAO,MAAM,mBAAmB,2BAG7B,cAAc,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,KAAG,GAAG,MAAM,IAAI,MAAM,EACnC,CAAC;AAE9B,eAAO,MAAM,gBAAgB,wDAKxB,qBAAqB,CAAC,cAAc,CAAC,kBACxB,WAAW;;;;;CAiB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,qBACT,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAGlF,CAAC;AAEF,eAAO,MAAM,gBAAgB,aAAc,mBAAmB,CAAC,UAAU,CAAC,YAEzE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { MetricsActionType, MetricsSwapType } from "./constants.mjs";
1
+ import { MetricsSwapType } from "./constants.mjs";
2
2
  import { DEFAULT_BRIDGE_CONTROLLER_STATE } from "../../constants/bridge.mjs";
3
3
  import { getNativeAssetForChainId, isCrossChain } from "../bridge.mjs";
4
4
  import { formatAddressToAssetId, formatChainIdToCaip } from "../caip-formatters.mjs";
@@ -20,15 +20,6 @@ export const toInputChangedPropertyValue = {
20
20
  destChainId: ({ destChainId }) => destChainId ? formatChainIdToCaip(destChainId) : undefined,
21
21
  slippage: ({ slippage }) => (slippage ? Number(slippage) : slippage),
22
22
  };
23
- export const getActionType = (srcChainId, destChainId) => {
24
- if (srcChainId && !isCrossChain(srcChainId, destChainId ?? srcChainId)) {
25
- return MetricsActionType.SWAPBRIDGE_V1;
26
- }
27
- return MetricsActionType.CROSSCHAIN_V1;
28
- };
29
- export const getActionTypeFromQuoteRequest = (quoteRequest) => {
30
- return getActionType(quoteRequest.srcChainId, quoteRequest.destChainId);
31
- };
32
23
  export const getSwapType = (srcChainId, destChainId) => {
33
24
  if (srcChainId && !isCrossChain(srcChainId, destChainId ?? srcChainId)) {
34
25
  return MetricsSwapType.SINGLE;
@@ -1 +1 @@
1
- {"version":3,"file":"properties.mjs","sourceRoot":"","sources":["../../../src/utils/metrics/properties.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CaipChainId } from '@metamask/utils';\n\nimport { MetricsActionType, MetricsSwapType } from './constants';\nimport type { InputKeys, InputValues } from './types';\nimport type { AccountsControllerState } from '../../../../accounts-controller/src/AccountsController';\nimport { DEFAULT_BRIDGE_CONTROLLER_STATE } from '../../constants/bridge';\nimport type { BridgeControllerState, QuoteResponse, TxData } from '../../types';\nimport { type GenericQuoteRequest, type QuoteRequest } from '../../types';\nimport { getNativeAssetForChainId, isCrossChain } from '../bridge';\nimport {\n formatAddressToAssetId,\n formatChainIdToCaip,\n} from '../caip-formatters';\n\nexport const toInputChangedPropertyKey: Partial<\n Record<keyof QuoteRequest, InputKeys>\n> = {\n srcTokenAddress: 'token_source',\n destTokenAddress: 'token_destination',\n srcChainId: 'chain_source',\n destChainId: 'chain_destination',\n slippage: 'slippage',\n};\n\nexport const toInputChangedPropertyValue: Partial<\n Record<\n keyof typeof toInputChangedPropertyKey,\n (\n value: Partial<GenericQuoteRequest>,\n ) => InputValues[keyof InputValues] | undefined\n >\n> = {\n srcTokenAddress: ({ srcTokenAddress, srcChainId }) =>\n srcChainId\n ? formatAddressToAssetId(srcTokenAddress ?? '', srcChainId)\n : undefined,\n destTokenAddress: ({ destTokenAddress, destChainId }) =>\n destChainId\n ? formatAddressToAssetId(destTokenAddress ?? '', destChainId)\n : undefined,\n srcChainId: ({ srcChainId }) =>\n srcChainId ? formatChainIdToCaip(srcChainId) : undefined,\n destChainId: ({ destChainId }) =>\n destChainId ? formatChainIdToCaip(destChainId) : undefined,\n slippage: ({ slippage }) => (slippage ? Number(slippage) : slippage),\n};\n\nexport const getActionType = (\n srcChainId?: GenericQuoteRequest['srcChainId'],\n destChainId?: GenericQuoteRequest['destChainId'],\n) => {\n if (srcChainId && !isCrossChain(srcChainId, destChainId ?? srcChainId)) {\n return MetricsActionType.SWAPBRIDGE_V1;\n }\n return MetricsActionType.CROSSCHAIN_V1;\n};\n\nexport const getActionTypeFromQuoteRequest = (\n quoteRequest: Partial<GenericQuoteRequest>,\n) => {\n return getActionType(quoteRequest.srcChainId, quoteRequest.destChainId);\n};\n\nexport const getSwapType = (\n srcChainId?: GenericQuoteRequest['srcChainId'],\n destChainId?: GenericQuoteRequest['destChainId'],\n) => {\n if (srcChainId && !isCrossChain(srcChainId, destChainId ?? srcChainId)) {\n return MetricsSwapType.SINGLE;\n }\n return MetricsSwapType.CROSSCHAIN;\n};\n\nexport const getSwapTypeFromQuote = (\n quoteRequest: Partial<GenericQuoteRequest>,\n) => {\n return getSwapType(quoteRequest.srcChainId, quoteRequest.destChainId);\n};\n\nexport const formatProviderLabel = ({\n bridgeId,\n bridges,\n}: QuoteResponse<TxData | string>['quote']): `${string}_${string}` =>\n `${bridgeId}_${bridges[0]}`;\n\nexport const getRequestParams = (\n {\n destChainId,\n srcTokenAddress,\n destTokenAddress,\n }: BridgeControllerState['quoteRequest'],\n srcChainIdCaip: CaipChainId,\n) => {\n return {\n chain_id_source: srcChainIdCaip,\n chain_id_destination: destChainId ? formatChainIdToCaip(destChainId) : null,\n token_address_source: srcTokenAddress\n ? (formatAddressToAssetId(srcTokenAddress, srcChainIdCaip) ??\n getNativeAssetForChainId(srcChainIdCaip)?.assetId ??\n null)\n : (getNativeAssetForChainId(srcChainIdCaip)?.assetId ?? null),\n token_address_destination: destTokenAddress\n ? (formatAddressToAssetId(\n destTokenAddress,\n destChainId ?? srcChainIdCaip,\n ) ?? null)\n : null,\n };\n};\n\nexport const isHardwareWallet = (\n selectedAccount?: AccountsControllerState['internalAccounts']['accounts'][string],\n) => {\n return selectedAccount?.metadata?.keyring.type?.includes('Hardware') ?? false;\n};\n\nexport const isCustomSlippage = (slippage: GenericQuoteRequest['slippage']) => {\n return slippage !== DEFAULT_BRIDGE_CONTROLLER_STATE.quoteRequest.slippage;\n};\n"]}
1
+ {"version":3,"file":"properties.mjs","sourceRoot":"","sources":["../../../src/utils/metrics/properties.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CaipChainId } from '@metamask/utils';\n\nimport { MetricsSwapType } from './constants';\nimport type { InputKeys, InputValues } from './types';\nimport type { AccountsControllerState } from '../../../../accounts-controller/src/AccountsController';\nimport { DEFAULT_BRIDGE_CONTROLLER_STATE } from '../../constants/bridge';\nimport type { BridgeControllerState, QuoteResponse, TxData } from '../../types';\nimport { type GenericQuoteRequest, type QuoteRequest } from '../../types';\nimport { getNativeAssetForChainId, isCrossChain } from '../bridge';\nimport {\n formatAddressToAssetId,\n formatChainIdToCaip,\n} from '../caip-formatters';\n\nexport const toInputChangedPropertyKey: Partial<\n Record<keyof QuoteRequest, InputKeys>\n> = {\n srcTokenAddress: 'token_source',\n destTokenAddress: 'token_destination',\n srcChainId: 'chain_source',\n destChainId: 'chain_destination',\n slippage: 'slippage',\n};\n\nexport const toInputChangedPropertyValue: Partial<\n Record<\n keyof typeof toInputChangedPropertyKey,\n (\n input_value: Partial<GenericQuoteRequest>,\n ) => InputValues[keyof InputValues] | undefined\n >\n> = {\n srcTokenAddress: ({ srcTokenAddress, srcChainId }) =>\n srcChainId\n ? formatAddressToAssetId(srcTokenAddress ?? '', srcChainId)\n : undefined,\n destTokenAddress: ({ destTokenAddress, destChainId }) =>\n destChainId\n ? formatAddressToAssetId(destTokenAddress ?? '', destChainId)\n : undefined,\n srcChainId: ({ srcChainId }) =>\n srcChainId ? formatChainIdToCaip(srcChainId) : undefined,\n destChainId: ({ destChainId }) =>\n destChainId ? formatChainIdToCaip(destChainId) : undefined,\n slippage: ({ slippage }) => (slippage ? Number(slippage) : slippage),\n};\n\nexport const getSwapType = (\n srcChainId?: GenericQuoteRequest['srcChainId'],\n destChainId?: GenericQuoteRequest['destChainId'],\n) => {\n if (srcChainId && !isCrossChain(srcChainId, destChainId ?? srcChainId)) {\n return MetricsSwapType.SINGLE;\n }\n return MetricsSwapType.CROSSCHAIN;\n};\n\nexport const getSwapTypeFromQuote = (\n quoteRequest: Partial<GenericQuoteRequest>,\n) => {\n return getSwapType(quoteRequest.srcChainId, quoteRequest.destChainId);\n};\n\nexport const formatProviderLabel = ({\n bridgeId,\n bridges,\n}: QuoteResponse<TxData | string>['quote']): `${string}_${string}` =>\n `${bridgeId}_${bridges[0]}`;\n\nexport const getRequestParams = (\n {\n destChainId,\n srcTokenAddress,\n destTokenAddress,\n }: BridgeControllerState['quoteRequest'],\n srcChainIdCaip: CaipChainId,\n) => {\n return {\n chain_id_source: srcChainIdCaip,\n chain_id_destination: destChainId ? formatChainIdToCaip(destChainId) : null,\n token_address_source: srcTokenAddress\n ? (formatAddressToAssetId(srcTokenAddress, srcChainIdCaip) ??\n getNativeAssetForChainId(srcChainIdCaip)?.assetId ??\n null)\n : (getNativeAssetForChainId(srcChainIdCaip)?.assetId ?? null),\n token_address_destination: destTokenAddress\n ? (formatAddressToAssetId(\n destTokenAddress,\n destChainId ?? srcChainIdCaip,\n ) ?? null)\n : null,\n };\n};\n\nexport const isHardwareWallet = (\n selectedAccount?: AccountsControllerState['internalAccounts']['accounts'][string],\n) => {\n return selectedAccount?.metadata?.keyring.type?.includes('Hardware') ?? false;\n};\n\nexport const isCustomSlippage = (slippage: GenericQuoteRequest['slippage']) => {\n return slippage !== DEFAULT_BRIDGE_CONTROLLER_STATE.quoteRequest.slippage;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../../src/utils/metrics/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { CaipAssetType, CaipChainId } from '@metamask/utils';\n\nimport type {\n UnifiedSwapBridgeEventName,\n MetaMetricsSwapsEventSource,\n MetricsActionType,\n MetricsSwapType,\n} from './constants';\nimport type { SortOrder, StatusTypes } from '../../types';\n\n/**\n * These properties map to properties required by the segment-schema. For example: https://github.com/Consensys/segment-schema/blob/main/libraries/properties/cross-chain-swaps-action.yaml\n */\nexport type RequestParams = {\n chain_id_source: CaipChainId;\n chain_id_destination: CaipChainId | null;\n token_symbol_source: string;\n token_symbol_destination: string | null;\n token_address_source: CaipAssetType;\n token_address_destination: CaipAssetType | null;\n};\n\nexport type RequestMetadata = {\n slippage_limit?: number; // undefined === auto\n custom_slippage: boolean;\n usd_amount_source: number; // Use quoteResponse when available\n stx_enabled: boolean;\n is_hardware_wallet: boolean;\n swap_type: MetricsSwapType;\n security_warnings: string[];\n};\n\nexport type QuoteFetchData = {\n can_submit: boolean;\n best_quote_provider?: `${string}_${string}`;\n quotes_count: number;\n quotes_list: `${string}_${string}`[];\n initial_load_time_all_quotes: number;\n price_impact: number;\n};\n\nexport type TradeData = {\n usd_quoted_gas: number;\n gas_included: boolean;\n quoted_time_minutes: number;\n usd_quoted_return: number;\n provider: `${string}_${string}`;\n};\n\nexport type TxStatusData = {\n allowance_reset_transaction?: StatusTypes;\n approval_transaction?: StatusTypes;\n source_transaction?: StatusTypes;\n destination_transaction?: StatusTypes;\n};\n\nexport type InputKeys =\n | 'token_source'\n | 'token_destination'\n | 'chain_source'\n | 'chain_destination'\n | 'slippage';\n\nexport type InputValues = {\n token_source: CaipAssetType;\n token_destination: CaipAssetType;\n chain_source: CaipChainId;\n chain_destination: CaipChainId;\n slippage: number;\n};\n\n/**\n * Properties that are required to be provided when trackUnifiedSwapBridgeEvent is called\n */\nexport type RequiredEventContextFromClient = {\n [UnifiedSwapBridgeEventName.ButtonClicked]: {\n location: MetaMetricsSwapsEventSource;\n } & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'>;\n // When type is object, the payload can be anything\n [UnifiedSwapBridgeEventName.PageViewed]: object;\n [UnifiedSwapBridgeEventName.InputChanged]: {\n input:\n | 'token_source'\n | 'token_destination'\n | 'chain_source'\n | 'chain_destination'\n | 'slippage';\n value: InputValues[keyof InputValues];\n };\n [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n token_address_source: RequestParams['token_address_source'];\n token_address_destination: RequestParams['token_address_destination'];\n chain_id_source: RequestParams['chain_id_source'];\n chain_id_destination: RequestParams['chain_id_destination'];\n } & Pick<RequestMetadata, 'security_warnings'>;\n [UnifiedSwapBridgeEventName.QuotesRequested]: Pick<\n RequestMetadata,\n 'stx_enabled'\n > & {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n };\n [UnifiedSwapBridgeEventName.QuotesReceived]: TradeData & {\n warnings: string[]; // TODO standardize warnings\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n price_impact: QuoteFetchData['price_impact'];\n };\n [UnifiedSwapBridgeEventName.QuoteError]: Pick<\n RequestMetadata,\n 'stx_enabled'\n > & {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n } & Pick<RequestMetadata, 'security_warnings'>;\n // Emitted by BridgeStatusController\n [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: Pick<\n QuoteFetchData,\n 'price_impact'\n > &\n TradeData & {\n action_type: MetricsActionType;\n };\n [UnifiedSwapBridgeEventName.Submitted]: TradeData &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'>;\n [UnifiedSwapBridgeEventName.Completed]: RequestParams &\n RequestMetadata &\n TxStatusData &\n Pick<QuoteFetchData, 'price_impact'> &\n TradeData & {\n actual_time_minutes: number;\n usd_actual_return: number;\n usd_actual_gas: number;\n quote_vs_execution_ratio: number;\n quoted_vs_used_gas_ratio: number;\n action_type: MetricsActionType;\n };\n [UnifiedSwapBridgeEventName.Failed]:\n | // Tx failed before confirmation\n (TradeData &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> &\n Pick<\n RequestParams,\n 'token_symbol_source' | 'token_symbol_destination'\n > & { error_message: string }) // Tx failed after confirmation\n | (RequestParams &\n RequestMetadata &\n Pick<QuoteFetchData, 'price_impact'> &\n TxStatusData &\n TradeData & {\n actual_time_minutes: number;\n error_message?: string;\n action_type: MetricsActionType;\n });\n // Emitted by clients\n [UnifiedSwapBridgeEventName.AllQuotesOpened]: Pick<\n TradeData,\n 'gas_included'\n > &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {\n stx_enabled: RequestMetadata['stx_enabled'];\n };\n [UnifiedSwapBridgeEventName.AllQuotesSorted]: Pick<\n TradeData,\n 'gas_included'\n > &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {\n stx_enabled: RequestMetadata['stx_enabled'];\n sort_order: SortOrder;\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n };\n [UnifiedSwapBridgeEventName.QuoteSelected]: TradeData & {\n is_best_quote: boolean;\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n price_impact: QuoteFetchData['price_impact'];\n };\n};\n\n/**\n * Properties that can be derived from the bridge controller state\n */\nexport type EventPropertiesFromControllerState = {\n [UnifiedSwapBridgeEventName.ButtonClicked]: RequestParams;\n [UnifiedSwapBridgeEventName.PageViewed]: RequestParams;\n [UnifiedSwapBridgeEventName.InputChanged]: {\n input: InputKeys;\n value: string;\n };\n [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: RequestParams;\n [UnifiedSwapBridgeEventName.QuotesRequested]: RequestParams &\n RequestMetadata & {\n has_sufficient_funds: boolean;\n };\n [UnifiedSwapBridgeEventName.QuotesReceived]: RequestParams &\n RequestMetadata &\n QuoteFetchData &\n TradeData & {\n refresh_count: number; // starts from 0\n };\n [UnifiedSwapBridgeEventName.QuoteError]: RequestParams &\n RequestMetadata & {\n has_sufficient_funds: boolean;\n error_message: string;\n };\n [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: RequestMetadata &\n RequestParams &\n QuoteFetchData &\n TradeData;\n [UnifiedSwapBridgeEventName.Submitted]: RequestParams &\n RequestMetadata &\n TradeData &\n Pick<QuoteFetchData, 'price_impact'> & {\n action_type: MetricsActionType;\n };\n [UnifiedSwapBridgeEventName.Completed]: null;\n [UnifiedSwapBridgeEventName.Failed]: RequestParams &\n RequestMetadata &\n TxStatusData &\n TradeData &\n Pick<QuoteFetchData, 'price_impact'> & {\n actual_time_minutes: number;\n action_type: MetricsActionType;\n };\n [UnifiedSwapBridgeEventName.AllQuotesOpened]: RequestParams &\n RequestMetadata &\n TradeData &\n QuoteFetchData;\n [UnifiedSwapBridgeEventName.AllQuotesSorted]: RequestParams &\n RequestMetadata &\n TradeData &\n QuoteFetchData;\n [UnifiedSwapBridgeEventName.QuoteSelected]: RequestParams &\n RequestMetadata &\n QuoteFetchData &\n TradeData;\n};\n\n/**\n * trackUnifiedSwapBridgeEvent payload properties consist of required properties from the client\n * and properties from the bridge controller\n */\nexport type CrossChainSwapsEventProperties<\n T extends UnifiedSwapBridgeEventName,\n> =\n | {\n action_type: MetricsActionType;\n }\n | Pick<EventPropertiesFromControllerState, T>[T]\n | Pick<RequiredEventContextFromClient, T>[T];\n"]}
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../../src/utils/metrics/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { CaipAssetType, CaipChainId } from '@metamask/utils';\n\nimport type {\n UnifiedSwapBridgeEventName,\n MetaMetricsSwapsEventSource,\n MetricsActionType,\n MetricsSwapType,\n} from './constants';\nimport type { SortOrder, StatusTypes } from '../../types';\n\n/**\n * These properties map to properties required by the segment-schema. For example: https://github.com/Consensys/segment-schema/blob/main/libraries/properties/cross-chain-swaps-action.yaml\n */\nexport type RequestParams = {\n chain_id_source: CaipChainId;\n chain_id_destination: CaipChainId | null;\n token_symbol_source: string;\n token_symbol_destination: string | null;\n token_address_source: CaipAssetType;\n token_address_destination: CaipAssetType | null;\n};\n\nexport type RequestMetadata = {\n slippage_limit?: number; // undefined === auto\n custom_slippage: boolean;\n usd_amount_source: number; // Use quoteResponse when available\n stx_enabled: boolean;\n is_hardware_wallet: boolean;\n swap_type: MetricsSwapType;\n security_warnings: string[];\n};\n\nexport type QuoteFetchData = {\n can_submit: boolean;\n best_quote_provider?: `${string}_${string}`;\n quotes_count: number;\n quotes_list: `${string}_${string}`[];\n initial_load_time_all_quotes: number;\n price_impact: number;\n};\n\nexport type TradeData = {\n usd_quoted_gas: number;\n gas_included: boolean;\n quoted_time_minutes: number;\n usd_quoted_return: number;\n provider: `${string}_${string}`;\n};\n\nexport type TxStatusData = {\n allowance_reset_transaction?: StatusTypes;\n approval_transaction?: StatusTypes;\n source_transaction?: StatusTypes;\n destination_transaction?: StatusTypes;\n};\n\nexport type InputKeys =\n | 'token_source'\n | 'token_destination'\n | 'chain_source'\n | 'chain_destination'\n | 'slippage';\n\nexport type InputValues = {\n token_source: CaipAssetType;\n token_destination: CaipAssetType;\n chain_source: CaipChainId;\n chain_destination: CaipChainId;\n slippage: number;\n};\n\n/**\n * Properties that are required to be provided when trackUnifiedSwapBridgeEvent is called\n */\nexport type RequiredEventContextFromClient = {\n [UnifiedSwapBridgeEventName.ButtonClicked]: {\n location: MetaMetricsSwapsEventSource;\n } & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'>;\n // When type is object, the payload can be anything\n [UnifiedSwapBridgeEventName.PageViewed]: object;\n [UnifiedSwapBridgeEventName.InputChanged]: {\n input:\n | 'token_source'\n | 'token_destination'\n | 'chain_source'\n | 'chain_destination'\n | 'slippage';\n input_value: InputValues[keyof InputValues];\n };\n [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n token_address_source: RequestParams['token_address_source'];\n token_address_destination: RequestParams['token_address_destination'];\n chain_id_source: RequestParams['chain_id_source'];\n chain_id_destination: RequestParams['chain_id_destination'];\n } & Pick<RequestMetadata, 'security_warnings'>;\n [UnifiedSwapBridgeEventName.QuotesRequested]: Pick<\n RequestMetadata,\n 'stx_enabled'\n > & {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n };\n [UnifiedSwapBridgeEventName.QuotesReceived]: TradeData & {\n warnings: string[]; // TODO standardize warnings\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n price_impact: QuoteFetchData['price_impact'];\n can_submit: QuoteFetchData['can_submit'];\n };\n [UnifiedSwapBridgeEventName.QuoteError]: Pick<\n RequestMetadata,\n 'stx_enabled'\n > & {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n } & Pick<RequestMetadata, 'security_warnings'>;\n // Emitted by BridgeStatusController\n [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: Pick<\n QuoteFetchData,\n 'price_impact'\n > &\n TradeData;\n [UnifiedSwapBridgeEventName.Submitted]: TradeData &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'>;\n [UnifiedSwapBridgeEventName.Completed]: RequestParams &\n RequestMetadata &\n TxStatusData &\n Pick<QuoteFetchData, 'price_impact'> &\n TradeData & {\n actual_time_minutes: number;\n usd_actual_return: number;\n usd_actual_gas: number;\n quote_vs_execution_ratio: number;\n quoted_vs_used_gas_ratio: number;\n };\n [UnifiedSwapBridgeEventName.Failed]:\n | // Tx failed before confirmation\n (TradeData &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> &\n Pick<\n RequestParams,\n 'token_symbol_source' | 'token_symbol_destination'\n > & { error_message: string }) // Tx failed after confirmation\n | (RequestParams &\n RequestMetadata &\n Pick<QuoteFetchData, 'price_impact'> &\n TxStatusData &\n TradeData & {\n actual_time_minutes: number;\n error_message?: string;\n });\n // Emitted by clients\n [UnifiedSwapBridgeEventName.AllQuotesOpened]: Pick<\n TradeData,\n 'gas_included'\n > &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {\n stx_enabled: RequestMetadata['stx_enabled'];\n can_submit: QuoteFetchData['can_submit'];\n };\n [UnifiedSwapBridgeEventName.AllQuotesSorted]: Pick<\n TradeData,\n 'gas_included'\n > &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {\n stx_enabled: RequestMetadata['stx_enabled'];\n sort_order: SortOrder;\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n can_submit: QuoteFetchData['can_submit'];\n };\n [UnifiedSwapBridgeEventName.QuoteSelected]: TradeData & {\n is_best_quote: boolean;\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n price_impact: QuoteFetchData['price_impact'];\n can_submit: QuoteFetchData['can_submit'];\n };\n};\n\n/**\n * Properties that can be derived from the bridge controller state\n */\nexport type EventPropertiesFromControllerState = {\n [UnifiedSwapBridgeEventName.ButtonClicked]: RequestParams;\n [UnifiedSwapBridgeEventName.PageViewed]: RequestParams;\n [UnifiedSwapBridgeEventName.InputChanged]: {\n input: InputKeys;\n input_value: string;\n };\n [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: RequestParams;\n [UnifiedSwapBridgeEventName.QuotesRequested]: RequestParams &\n RequestMetadata & {\n has_sufficient_funds: boolean;\n };\n [UnifiedSwapBridgeEventName.QuotesReceived]: RequestParams &\n RequestMetadata &\n QuoteFetchData &\n TradeData & {\n refresh_count: number; // starts from 0\n };\n [UnifiedSwapBridgeEventName.QuoteError]: RequestParams &\n RequestMetadata & {\n has_sufficient_funds: boolean;\n error_message: string;\n };\n [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: RequestMetadata &\n RequestParams &\n QuoteFetchData &\n TradeData;\n [UnifiedSwapBridgeEventName.Submitted]: RequestParams &\n RequestMetadata &\n TradeData &\n Pick<QuoteFetchData, 'price_impact'> & {};\n [UnifiedSwapBridgeEventName.Completed]: null;\n [UnifiedSwapBridgeEventName.Failed]: RequestParams &\n RequestMetadata &\n TxStatusData &\n TradeData &\n Pick<QuoteFetchData, 'price_impact'> & {\n actual_time_minutes: number;\n };\n [UnifiedSwapBridgeEventName.AllQuotesOpened]: RequestParams &\n RequestMetadata &\n TradeData &\n QuoteFetchData;\n [UnifiedSwapBridgeEventName.AllQuotesSorted]: RequestParams &\n RequestMetadata &\n TradeData &\n QuoteFetchData;\n [UnifiedSwapBridgeEventName.QuoteSelected]: RequestParams &\n RequestMetadata &\n QuoteFetchData &\n TradeData;\n};\n\n/**\n * trackUnifiedSwapBridgeEvent payload properties consist of required properties from the client\n * and properties from the bridge controller\n */\nexport type CrossChainSwapsEventProperties<\n T extends UnifiedSwapBridgeEventName,\n> =\n | {\n action_type: MetricsActionType;\n }\n | Pick<EventPropertiesFromControllerState, T>[T]\n | Pick<RequiredEventContextFromClient, T>[T];\n"]}
@@ -60,7 +60,7 @@ export type RequiredEventContextFromClient = {
60
60
  [UnifiedSwapBridgeEventName.PageViewed]: object;
61
61
  [UnifiedSwapBridgeEventName.InputChanged]: {
62
62
  input: 'token_source' | 'token_destination' | 'chain_source' | 'chain_destination' | 'slippage';
63
- value: InputValues[keyof InputValues];
63
+ input_value: InputValues[keyof InputValues];
64
64
  };
65
65
  [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: {
66
66
  token_symbol_source: RequestParams['token_symbol_source'];
@@ -78,14 +78,13 @@ export type RequiredEventContextFromClient = {
78
78
  warnings: string[];
79
79
  best_quote_provider: QuoteFetchData['best_quote_provider'];
80
80
  price_impact: QuoteFetchData['price_impact'];
81
+ can_submit: QuoteFetchData['can_submit'];
81
82
  };
82
83
  [UnifiedSwapBridgeEventName.QuoteError]: Pick<RequestMetadata, 'stx_enabled'> & {
83
84
  token_symbol_source: RequestParams['token_symbol_source'];
84
85
  token_symbol_destination: RequestParams['token_symbol_destination'];
85
86
  } & Pick<RequestMetadata, 'security_warnings'>;
86
- [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: Pick<QuoteFetchData, 'price_impact'> & TradeData & {
87
- action_type: MetricsActionType;
88
- };
87
+ [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: Pick<QuoteFetchData, 'price_impact'> & TradeData;
89
88
  [UnifiedSwapBridgeEventName.Submitted]: TradeData & Pick<QuoteFetchData, 'price_impact'> & Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'>;
90
89
  [UnifiedSwapBridgeEventName.Completed]: RequestParams & RequestMetadata & TxStatusData & Pick<QuoteFetchData, 'price_impact'> & TradeData & {
91
90
  actual_time_minutes: number;
@@ -93,7 +92,6 @@ export type RequiredEventContextFromClient = {
93
92
  usd_actual_gas: number;
94
93
  quote_vs_execution_ratio: number;
95
94
  quoted_vs_used_gas_ratio: number;
96
- action_type: MetricsActionType;
97
95
  };
98
96
  [UnifiedSwapBridgeEventName.Failed]: // Tx failed before confirmation
99
97
  (TradeData & Pick<QuoteFetchData, 'price_impact'> & Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {
@@ -101,20 +99,22 @@ export type RequiredEventContextFromClient = {
101
99
  }) | (RequestParams & RequestMetadata & Pick<QuoteFetchData, 'price_impact'> & TxStatusData & TradeData & {
102
100
  actual_time_minutes: number;
103
101
  error_message?: string;
104
- action_type: MetricsActionType;
105
102
  });
106
103
  [UnifiedSwapBridgeEventName.AllQuotesOpened]: Pick<TradeData, 'gas_included'> & Pick<QuoteFetchData, 'price_impact'> & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {
107
104
  stx_enabled: RequestMetadata['stx_enabled'];
105
+ can_submit: QuoteFetchData['can_submit'];
108
106
  };
109
107
  [UnifiedSwapBridgeEventName.AllQuotesSorted]: Pick<TradeData, 'gas_included'> & Pick<QuoteFetchData, 'price_impact'> & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {
110
108
  stx_enabled: RequestMetadata['stx_enabled'];
111
109
  sort_order: SortOrder;
112
110
  best_quote_provider: QuoteFetchData['best_quote_provider'];
111
+ can_submit: QuoteFetchData['can_submit'];
113
112
  };
114
113
  [UnifiedSwapBridgeEventName.QuoteSelected]: TradeData & {
115
114
  is_best_quote: boolean;
116
115
  best_quote_provider: QuoteFetchData['best_quote_provider'];
117
116
  price_impact: QuoteFetchData['price_impact'];
117
+ can_submit: QuoteFetchData['can_submit'];
118
118
  };
119
119
  };
120
120
  /**
@@ -125,7 +125,7 @@ export type EventPropertiesFromControllerState = {
125
125
  [UnifiedSwapBridgeEventName.PageViewed]: RequestParams;
126
126
  [UnifiedSwapBridgeEventName.InputChanged]: {
127
127
  input: InputKeys;
128
- value: string;
128
+ input_value: string;
129
129
  };
130
130
  [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: RequestParams;
131
131
  [UnifiedSwapBridgeEventName.QuotesRequested]: RequestParams & RequestMetadata & {
@@ -139,13 +139,10 @@ export type EventPropertiesFromControllerState = {
139
139
  error_message: string;
140
140
  };
141
141
  [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: RequestMetadata & RequestParams & QuoteFetchData & TradeData;
142
- [UnifiedSwapBridgeEventName.Submitted]: RequestParams & RequestMetadata & TradeData & Pick<QuoteFetchData, 'price_impact'> & {
143
- action_type: MetricsActionType;
144
- };
142
+ [UnifiedSwapBridgeEventName.Submitted]: RequestParams & RequestMetadata & TradeData & Pick<QuoteFetchData, 'price_impact'> & {};
145
143
  [UnifiedSwapBridgeEventName.Completed]: null;
146
144
  [UnifiedSwapBridgeEventName.Failed]: RequestParams & RequestMetadata & TxStatusData & TradeData & Pick<QuoteFetchData, 'price_impact'> & {
147
145
  actual_time_minutes: number;
148
- action_type: MetricsActionType;
149
146
  };
150
147
  [UnifiedSwapBridgeEventName.AllQuotesOpened]: RequestParams & RequestMetadata & TradeData & QuoteFetchData;
151
148
  [UnifiedSwapBridgeEventName.AllQuotesSorted]: RequestParams & RequestMetadata & TradeData & QuoteFetchData;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../../src/utils/metrics/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../../src/utils/metrics/types.ts"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ export type RequiredEventContextFromClient = {
60
60
  [UnifiedSwapBridgeEventName.PageViewed]: object;
61
61
  [UnifiedSwapBridgeEventName.InputChanged]: {
62
62
  input: 'token_source' | 'token_destination' | 'chain_source' | 'chain_destination' | 'slippage';
63
- value: InputValues[keyof InputValues];
63
+ input_value: InputValues[keyof InputValues];
64
64
  };
65
65
  [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: {
66
66
  token_symbol_source: RequestParams['token_symbol_source'];
@@ -78,14 +78,13 @@ export type RequiredEventContextFromClient = {
78
78
  warnings: string[];
79
79
  best_quote_provider: QuoteFetchData['best_quote_provider'];
80
80
  price_impact: QuoteFetchData['price_impact'];
81
+ can_submit: QuoteFetchData['can_submit'];
81
82
  };
82
83
  [UnifiedSwapBridgeEventName.QuoteError]: Pick<RequestMetadata, 'stx_enabled'> & {
83
84
  token_symbol_source: RequestParams['token_symbol_source'];
84
85
  token_symbol_destination: RequestParams['token_symbol_destination'];
85
86
  } & Pick<RequestMetadata, 'security_warnings'>;
86
- [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: Pick<QuoteFetchData, 'price_impact'> & TradeData & {
87
- action_type: MetricsActionType;
88
- };
87
+ [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: Pick<QuoteFetchData, 'price_impact'> & TradeData;
89
88
  [UnifiedSwapBridgeEventName.Submitted]: TradeData & Pick<QuoteFetchData, 'price_impact'> & Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'>;
90
89
  [UnifiedSwapBridgeEventName.Completed]: RequestParams & RequestMetadata & TxStatusData & Pick<QuoteFetchData, 'price_impact'> & TradeData & {
91
90
  actual_time_minutes: number;
@@ -93,7 +92,6 @@ export type RequiredEventContextFromClient = {
93
92
  usd_actual_gas: number;
94
93
  quote_vs_execution_ratio: number;
95
94
  quoted_vs_used_gas_ratio: number;
96
- action_type: MetricsActionType;
97
95
  };
98
96
  [UnifiedSwapBridgeEventName.Failed]: // Tx failed before confirmation
99
97
  (TradeData & Pick<QuoteFetchData, 'price_impact'> & Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {
@@ -101,20 +99,22 @@ export type RequiredEventContextFromClient = {
101
99
  }) | (RequestParams & RequestMetadata & Pick<QuoteFetchData, 'price_impact'> & TxStatusData & TradeData & {
102
100
  actual_time_minutes: number;
103
101
  error_message?: string;
104
- action_type: MetricsActionType;
105
102
  });
106
103
  [UnifiedSwapBridgeEventName.AllQuotesOpened]: Pick<TradeData, 'gas_included'> & Pick<QuoteFetchData, 'price_impact'> & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {
107
104
  stx_enabled: RequestMetadata['stx_enabled'];
105
+ can_submit: QuoteFetchData['can_submit'];
108
106
  };
109
107
  [UnifiedSwapBridgeEventName.AllQuotesSorted]: Pick<TradeData, 'gas_included'> & Pick<QuoteFetchData, 'price_impact'> & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {
110
108
  stx_enabled: RequestMetadata['stx_enabled'];
111
109
  sort_order: SortOrder;
112
110
  best_quote_provider: QuoteFetchData['best_quote_provider'];
111
+ can_submit: QuoteFetchData['can_submit'];
113
112
  };
114
113
  [UnifiedSwapBridgeEventName.QuoteSelected]: TradeData & {
115
114
  is_best_quote: boolean;
116
115
  best_quote_provider: QuoteFetchData['best_quote_provider'];
117
116
  price_impact: QuoteFetchData['price_impact'];
117
+ can_submit: QuoteFetchData['can_submit'];
118
118
  };
119
119
  };
120
120
  /**
@@ -125,7 +125,7 @@ export type EventPropertiesFromControllerState = {
125
125
  [UnifiedSwapBridgeEventName.PageViewed]: RequestParams;
126
126
  [UnifiedSwapBridgeEventName.InputChanged]: {
127
127
  input: InputKeys;
128
- value: string;
128
+ input_value: string;
129
129
  };
130
130
  [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: RequestParams;
131
131
  [UnifiedSwapBridgeEventName.QuotesRequested]: RequestParams & RequestMetadata & {
@@ -139,13 +139,10 @@ export type EventPropertiesFromControllerState = {
139
139
  error_message: string;
140
140
  };
141
141
  [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: RequestMetadata & RequestParams & QuoteFetchData & TradeData;
142
- [UnifiedSwapBridgeEventName.Submitted]: RequestParams & RequestMetadata & TradeData & Pick<QuoteFetchData, 'price_impact'> & {
143
- action_type: MetricsActionType;
144
- };
142
+ [UnifiedSwapBridgeEventName.Submitted]: RequestParams & RequestMetadata & TradeData & Pick<QuoteFetchData, 'price_impact'> & {};
145
143
  [UnifiedSwapBridgeEventName.Completed]: null;
146
144
  [UnifiedSwapBridgeEventName.Failed]: RequestParams & RequestMetadata & TxStatusData & TradeData & Pick<QuoteFetchData, 'price_impact'> & {
147
145
  actual_time_minutes: number;
148
- action_type: MetricsActionType;
149
146
  };
150
147
  [UnifiedSwapBridgeEventName.AllQuotesOpened]: RequestParams & RequestMetadata & TradeData & QuoteFetchData;
151
148
  [UnifiedSwapBridgeEventName.AllQuotesSorted]: RequestParams & RequestMetadata & TradeData & QuoteFetchData;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../src/utils/metrics/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,wBAAwB;AAElE,OAAO,KAAK,EACV,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EAChB,wBAAoB;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAoB;AAE1D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,EAAE,WAAW,CAAC;IAC7B,oBAAoB,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,oBAAoB,EAAE,aAAa,CAAC;IACpC,yBAAyB,EAAE,aAAa,GAAG,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,eAAe,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,CAAC;IACrC,4BAA4B,EAAE,MAAM,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,2BAA2B,CAAC,EAAE,WAAW,CAAC;IAC1C,oBAAoB,CAAC,EAAE,WAAW,CAAC;IACnC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,uBAAuB,CAAC,EAAE,WAAW,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,SAAS,GACjB,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,mBAAmB,GACnB,UAAU,CAAC;AAEf,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,iBAAiB,EAAE,aAAa,CAAC;IACjC,YAAY,EAAE,WAAW,CAAC;IAC1B,iBAAiB,EAAE,WAAW,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,CAAC,0BAA0B,CAAC,aAAa,CAAC,EAAE;QAC1C,QAAQ,EAAE,2BAA2B,CAAC;KACvC,GAAG,IAAI,CAAC,aAAa,EAAE,qBAAqB,GAAG,0BAA0B,CAAC,CAAC;IAE5E,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAChD,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE;QACzC,KAAK,EACD,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,mBAAmB,GACnB,UAAU,CAAC;QACf,KAAK,EAAE,WAAW,CAAC,MAAM,WAAW,CAAC,CAAC;KACvC,CAAC;IACF,CAAC,0BAA0B,CAAC,6BAA6B,CAAC,EAAE;QAC1D,mBAAmB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC1D,wBAAwB,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC;QACpE,oBAAoB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAC5D,yBAAyB,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAC;QACtE,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAClD,oBAAoB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;KAC7D,GAAG,IAAI,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAC/C,CAAC,0BAA0B,CAAC,eAAe,CAAC,EAAE,IAAI,CAChD,eAAe,EACf,aAAa,CACd,GAAG;QACF,mBAAmB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC1D,wBAAwB,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC;KACrE,CAAC;IACF,CAAC,0BAA0B,CAAC,cAAc,CAAC,EAAE,SAAS,GAAG;QACvD,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,mBAAmB,EAAE,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAC3D,YAAY,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;KAC9C,CAAC;IACF,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,IAAI,CAC3C,eAAe,EACf,aAAa,CACd,GAAG;QACF,mBAAmB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC1D,wBAAwB,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC;KACrE,GAAG,IAAI,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAE/C,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,EAAE,IAAI,CACvD,cAAc,EACd,cAAc,CACf,GACC,SAAS,GAAG;QACV,WAAW,EAAE,iBAAiB,CAAC;KAChC,CAAC;IACJ,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,SAAS,GAC/C,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GACpC,IAAI,CAAC,eAAe,EAAE,aAAa,GAAG,mBAAmB,CAAC,GAC1D,IAAI,CAAC,aAAa,EAAE,qBAAqB,GAAG,0BAA0B,CAAC,CAAC;IAC1E,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,aAAa,GACnD,eAAe,GACf,YAAY,GACZ,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GACpC,SAAS,GAAG;QACV,mBAAmB,EAAE,MAAM,CAAC;QAC5B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;QACvB,wBAAwB,EAAE,MAAM,CAAC;QACjC,wBAAwB,EAAE,MAAM,CAAC;QACjC,WAAW,EAAE,iBAAiB,CAAC;KAChC,CAAC;IACJ,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAC/B,gCAAgC;IAClC,CAAC,SAAS,GACN,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GACpC,IAAI,CAAC,eAAe,EAAE,aAAa,GAAG,mBAAmB,CAAC,GAC1D,IAAI,CACF,aAAa,EACb,qBAAqB,GAAG,0BAA0B,CACnD,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,GAChC,CAAC,aAAa,GACZ,eAAe,GACf,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GACpC,YAAY,GACZ,SAAS,GAAG;QACV,mBAAmB,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,iBAAiB,CAAC;KAChC,CAAC,CAAC;IAET,CAAC,0BAA0B,CAAC,eAAe,CAAC,EAAE,IAAI,CAChD,SAAS,EACT,cAAc,CACf,GACC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GACpC,IAAI,CAAC,aAAa,EAAE,qBAAqB,GAAG,0BAA0B,CAAC,GAAG;QACxE,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;KAC7C,CAAC;IACJ,CAAC,0BAA0B,CAAC,eAAe,CAAC,EAAE,IAAI,CAChD,SAAS,EACT,cAAc,CACf,GACC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GACpC,IAAI,CAAC,aAAa,EAAE,qBAAqB,GAAG,0BAA0B,CAAC,GAAG;QACxE,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QAC5C,UAAU,EAAE,SAAS,CAAC;QACtB,mBAAmB,EAAE,cAAc,CAAC,qBAAqB,CAAC,CAAC;KAC5D,CAAC;IACJ,CAAC,0BAA0B,CAAC,aAAa,CAAC,EAAE,SAAS,GAAG;QACtD,aAAa,EAAE,OAAO,CAAC;QACvB,mBAAmB,EAAE,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAC3D,YAAY,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;KAC9C,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG;IAC/C,CAAC,0BAA0B,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC1D,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACvD,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE;QACzC,KAAK,EAAE,SAAS,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,CAAC,0BAA0B,CAAC,6BAA6B,CAAC,EAAE,aAAa,CAAC;IAC1E,CAAC,0BAA0B,CAAC,eAAe,CAAC,EAAE,aAAa,GACzD,eAAe,GAAG;QAChB,oBAAoB,EAAE,OAAO,CAAC;KAC/B,CAAC;IACJ,CAAC,0BAA0B,CAAC,cAAc,CAAC,EAAE,aAAa,GACxD,eAAe,GACf,cAAc,GACd,SAAS,GAAG;QACV,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACJ,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,aAAa,GACpD,eAAe,GAAG;QAChB,oBAAoB,EAAE,OAAO,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACJ,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,EAAE,eAAe,GAClE,aAAa,GACb,cAAc,GACd,SAAS,CAAC;IACZ,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,aAAa,GACnD,eAAe,GACf,SAAS,GACT,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GAAG;QACrC,WAAW,EAAE,iBAAiB,CAAC;KAChC,CAAC;IACJ,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC7C,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,aAAa,GAChD,eAAe,GACf,YAAY,GACZ,SAAS,GACT,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GAAG;QACrC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,WAAW,EAAE,iBAAiB,CAAC;KAChC,CAAC;IACJ,CAAC,0BAA0B,CAAC,eAAe,CAAC,EAAE,aAAa,GACzD,eAAe,GACf,SAAS,GACT,cAAc,CAAC;IACjB,CAAC,0BAA0B,CAAC,eAAe,CAAC,EAAE,aAAa,GACzD,eAAe,GACf,SAAS,GACT,cAAc,CAAC;IACjB,CAAC,0BAA0B,CAAC,aAAa,CAAC,EAAE,aAAa,GACvD,eAAe,GACf,cAAc,GACd,SAAS,CAAC;CACb,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,8BAA8B,CACxC,CAAC,SAAS,0BAA0B,IAElC;IACE,WAAW,EAAE,iBAAiB,CAAC;CAChC,GACD,IAAI,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAC9C,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../src/utils/metrics/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../src/utils/metrics/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { CaipAssetType, CaipChainId } from '@metamask/utils';\n\nimport type {\n UnifiedSwapBridgeEventName,\n MetaMetricsSwapsEventSource,\n MetricsActionType,\n MetricsSwapType,\n} from './constants';\nimport type { SortOrder, StatusTypes } from '../../types';\n\n/**\n * These properties map to properties required by the segment-schema. For example: https://github.com/Consensys/segment-schema/blob/main/libraries/properties/cross-chain-swaps-action.yaml\n */\nexport type RequestParams = {\n chain_id_source: CaipChainId;\n chain_id_destination: CaipChainId | null;\n token_symbol_source: string;\n token_symbol_destination: string | null;\n token_address_source: CaipAssetType;\n token_address_destination: CaipAssetType | null;\n};\n\nexport type RequestMetadata = {\n slippage_limit?: number; // undefined === auto\n custom_slippage: boolean;\n usd_amount_source: number; // Use quoteResponse when available\n stx_enabled: boolean;\n is_hardware_wallet: boolean;\n swap_type: MetricsSwapType;\n security_warnings: string[];\n};\n\nexport type QuoteFetchData = {\n can_submit: boolean;\n best_quote_provider?: `${string}_${string}`;\n quotes_count: number;\n quotes_list: `${string}_${string}`[];\n initial_load_time_all_quotes: number;\n price_impact: number;\n};\n\nexport type TradeData = {\n usd_quoted_gas: number;\n gas_included: boolean;\n quoted_time_minutes: number;\n usd_quoted_return: number;\n provider: `${string}_${string}`;\n};\n\nexport type TxStatusData = {\n allowance_reset_transaction?: StatusTypes;\n approval_transaction?: StatusTypes;\n source_transaction?: StatusTypes;\n destination_transaction?: StatusTypes;\n};\n\nexport type InputKeys =\n | 'token_source'\n | 'token_destination'\n | 'chain_source'\n | 'chain_destination'\n | 'slippage';\n\nexport type InputValues = {\n token_source: CaipAssetType;\n token_destination: CaipAssetType;\n chain_source: CaipChainId;\n chain_destination: CaipChainId;\n slippage: number;\n};\n\n/**\n * Properties that are required to be provided when trackUnifiedSwapBridgeEvent is called\n */\nexport type RequiredEventContextFromClient = {\n [UnifiedSwapBridgeEventName.ButtonClicked]: {\n location: MetaMetricsSwapsEventSource;\n } & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'>;\n // When type is object, the payload can be anything\n [UnifiedSwapBridgeEventName.PageViewed]: object;\n [UnifiedSwapBridgeEventName.InputChanged]: {\n input:\n | 'token_source'\n | 'token_destination'\n | 'chain_source'\n | 'chain_destination'\n | 'slippage';\n value: InputValues[keyof InputValues];\n };\n [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n token_address_source: RequestParams['token_address_source'];\n token_address_destination: RequestParams['token_address_destination'];\n chain_id_source: RequestParams['chain_id_source'];\n chain_id_destination: RequestParams['chain_id_destination'];\n } & Pick<RequestMetadata, 'security_warnings'>;\n [UnifiedSwapBridgeEventName.QuotesRequested]: Pick<\n RequestMetadata,\n 'stx_enabled'\n > & {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n };\n [UnifiedSwapBridgeEventName.QuotesReceived]: TradeData & {\n warnings: string[]; // TODO standardize warnings\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n price_impact: QuoteFetchData['price_impact'];\n };\n [UnifiedSwapBridgeEventName.QuoteError]: Pick<\n RequestMetadata,\n 'stx_enabled'\n > & {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n } & Pick<RequestMetadata, 'security_warnings'>;\n // Emitted by BridgeStatusController\n [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: Pick<\n QuoteFetchData,\n 'price_impact'\n > &\n TradeData & {\n action_type: MetricsActionType;\n };\n [UnifiedSwapBridgeEventName.Submitted]: TradeData &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'>;\n [UnifiedSwapBridgeEventName.Completed]: RequestParams &\n RequestMetadata &\n TxStatusData &\n Pick<QuoteFetchData, 'price_impact'> &\n TradeData & {\n actual_time_minutes: number;\n usd_actual_return: number;\n usd_actual_gas: number;\n quote_vs_execution_ratio: number;\n quoted_vs_used_gas_ratio: number;\n action_type: MetricsActionType;\n };\n [UnifiedSwapBridgeEventName.Failed]:\n | // Tx failed before confirmation\n (TradeData &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> &\n Pick<\n RequestParams,\n 'token_symbol_source' | 'token_symbol_destination'\n > & { error_message: string }) // Tx failed after confirmation\n | (RequestParams &\n RequestMetadata &\n Pick<QuoteFetchData, 'price_impact'> &\n TxStatusData &\n TradeData & {\n actual_time_minutes: number;\n error_message?: string;\n action_type: MetricsActionType;\n });\n // Emitted by clients\n [UnifiedSwapBridgeEventName.AllQuotesOpened]: Pick<\n TradeData,\n 'gas_included'\n > &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {\n stx_enabled: RequestMetadata['stx_enabled'];\n };\n [UnifiedSwapBridgeEventName.AllQuotesSorted]: Pick<\n TradeData,\n 'gas_included'\n > &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {\n stx_enabled: RequestMetadata['stx_enabled'];\n sort_order: SortOrder;\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n };\n [UnifiedSwapBridgeEventName.QuoteSelected]: TradeData & {\n is_best_quote: boolean;\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n price_impact: QuoteFetchData['price_impact'];\n };\n};\n\n/**\n * Properties that can be derived from the bridge controller state\n */\nexport type EventPropertiesFromControllerState = {\n [UnifiedSwapBridgeEventName.ButtonClicked]: RequestParams;\n [UnifiedSwapBridgeEventName.PageViewed]: RequestParams;\n [UnifiedSwapBridgeEventName.InputChanged]: {\n input: InputKeys;\n value: string;\n };\n [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: RequestParams;\n [UnifiedSwapBridgeEventName.QuotesRequested]: RequestParams &\n RequestMetadata & {\n has_sufficient_funds: boolean;\n };\n [UnifiedSwapBridgeEventName.QuotesReceived]: RequestParams &\n RequestMetadata &\n QuoteFetchData &\n TradeData & {\n refresh_count: number; // starts from 0\n };\n [UnifiedSwapBridgeEventName.QuoteError]: RequestParams &\n RequestMetadata & {\n has_sufficient_funds: boolean;\n error_message: string;\n };\n [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: RequestMetadata &\n RequestParams &\n QuoteFetchData &\n TradeData;\n [UnifiedSwapBridgeEventName.Submitted]: RequestParams &\n RequestMetadata &\n TradeData &\n Pick<QuoteFetchData, 'price_impact'> & {\n action_type: MetricsActionType;\n };\n [UnifiedSwapBridgeEventName.Completed]: null;\n [UnifiedSwapBridgeEventName.Failed]: RequestParams &\n RequestMetadata &\n TxStatusData &\n TradeData &\n Pick<QuoteFetchData, 'price_impact'> & {\n actual_time_minutes: number;\n action_type: MetricsActionType;\n };\n [UnifiedSwapBridgeEventName.AllQuotesOpened]: RequestParams &\n RequestMetadata &\n TradeData &\n QuoteFetchData;\n [UnifiedSwapBridgeEventName.AllQuotesSorted]: RequestParams &\n RequestMetadata &\n TradeData &\n QuoteFetchData;\n [UnifiedSwapBridgeEventName.QuoteSelected]: RequestParams &\n RequestMetadata &\n QuoteFetchData &\n TradeData;\n};\n\n/**\n * trackUnifiedSwapBridgeEvent payload properties consist of required properties from the client\n * and properties from the bridge controller\n */\nexport type CrossChainSwapsEventProperties<\n T extends UnifiedSwapBridgeEventName,\n> =\n | {\n action_type: MetricsActionType;\n }\n | Pick<EventPropertiesFromControllerState, T>[T]\n | Pick<RequiredEventContextFromClient, T>[T];\n"]}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../src/utils/metrics/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { CaipAssetType, CaipChainId } from '@metamask/utils';\n\nimport type {\n UnifiedSwapBridgeEventName,\n MetaMetricsSwapsEventSource,\n MetricsActionType,\n MetricsSwapType,\n} from './constants';\nimport type { SortOrder, StatusTypes } from '../../types';\n\n/**\n * These properties map to properties required by the segment-schema. For example: https://github.com/Consensys/segment-schema/blob/main/libraries/properties/cross-chain-swaps-action.yaml\n */\nexport type RequestParams = {\n chain_id_source: CaipChainId;\n chain_id_destination: CaipChainId | null;\n token_symbol_source: string;\n token_symbol_destination: string | null;\n token_address_source: CaipAssetType;\n token_address_destination: CaipAssetType | null;\n};\n\nexport type RequestMetadata = {\n slippage_limit?: number; // undefined === auto\n custom_slippage: boolean;\n usd_amount_source: number; // Use quoteResponse when available\n stx_enabled: boolean;\n is_hardware_wallet: boolean;\n swap_type: MetricsSwapType;\n security_warnings: string[];\n};\n\nexport type QuoteFetchData = {\n can_submit: boolean;\n best_quote_provider?: `${string}_${string}`;\n quotes_count: number;\n quotes_list: `${string}_${string}`[];\n initial_load_time_all_quotes: number;\n price_impact: number;\n};\n\nexport type TradeData = {\n usd_quoted_gas: number;\n gas_included: boolean;\n quoted_time_minutes: number;\n usd_quoted_return: number;\n provider: `${string}_${string}`;\n};\n\nexport type TxStatusData = {\n allowance_reset_transaction?: StatusTypes;\n approval_transaction?: StatusTypes;\n source_transaction?: StatusTypes;\n destination_transaction?: StatusTypes;\n};\n\nexport type InputKeys =\n | 'token_source'\n | 'token_destination'\n | 'chain_source'\n | 'chain_destination'\n | 'slippage';\n\nexport type InputValues = {\n token_source: CaipAssetType;\n token_destination: CaipAssetType;\n chain_source: CaipChainId;\n chain_destination: CaipChainId;\n slippage: number;\n};\n\n/**\n * Properties that are required to be provided when trackUnifiedSwapBridgeEvent is called\n */\nexport type RequiredEventContextFromClient = {\n [UnifiedSwapBridgeEventName.ButtonClicked]: {\n location: MetaMetricsSwapsEventSource;\n } & Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'>;\n // When type is object, the payload can be anything\n [UnifiedSwapBridgeEventName.PageViewed]: object;\n [UnifiedSwapBridgeEventName.InputChanged]: {\n input:\n | 'token_source'\n | 'token_destination'\n | 'chain_source'\n | 'chain_destination'\n | 'slippage';\n input_value: InputValues[keyof InputValues];\n };\n [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n token_address_source: RequestParams['token_address_source'];\n token_address_destination: RequestParams['token_address_destination'];\n chain_id_source: RequestParams['chain_id_source'];\n chain_id_destination: RequestParams['chain_id_destination'];\n } & Pick<RequestMetadata, 'security_warnings'>;\n [UnifiedSwapBridgeEventName.QuotesRequested]: Pick<\n RequestMetadata,\n 'stx_enabled'\n > & {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n };\n [UnifiedSwapBridgeEventName.QuotesReceived]: TradeData & {\n warnings: string[]; // TODO standardize warnings\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n price_impact: QuoteFetchData['price_impact'];\n can_submit: QuoteFetchData['can_submit'];\n };\n [UnifiedSwapBridgeEventName.QuoteError]: Pick<\n RequestMetadata,\n 'stx_enabled'\n > & {\n token_symbol_source: RequestParams['token_symbol_source'];\n token_symbol_destination: RequestParams['token_symbol_destination'];\n } & Pick<RequestMetadata, 'security_warnings'>;\n // Emitted by BridgeStatusController\n [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: Pick<\n QuoteFetchData,\n 'price_impact'\n > &\n TradeData;\n [UnifiedSwapBridgeEventName.Submitted]: TradeData &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'>;\n [UnifiedSwapBridgeEventName.Completed]: RequestParams &\n RequestMetadata &\n TxStatusData &\n Pick<QuoteFetchData, 'price_impact'> &\n TradeData & {\n actual_time_minutes: number;\n usd_actual_return: number;\n usd_actual_gas: number;\n quote_vs_execution_ratio: number;\n quoted_vs_used_gas_ratio: number;\n };\n [UnifiedSwapBridgeEventName.Failed]:\n | // Tx failed before confirmation\n (TradeData &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestMetadata, 'stx_enabled' | 'usd_amount_source'> &\n Pick<\n RequestParams,\n 'token_symbol_source' | 'token_symbol_destination'\n > & { error_message: string }) // Tx failed after confirmation\n | (RequestParams &\n RequestMetadata &\n Pick<QuoteFetchData, 'price_impact'> &\n TxStatusData &\n TradeData & {\n actual_time_minutes: number;\n error_message?: string;\n });\n // Emitted by clients\n [UnifiedSwapBridgeEventName.AllQuotesOpened]: Pick<\n TradeData,\n 'gas_included'\n > &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {\n stx_enabled: RequestMetadata['stx_enabled'];\n can_submit: QuoteFetchData['can_submit'];\n };\n [UnifiedSwapBridgeEventName.AllQuotesSorted]: Pick<\n TradeData,\n 'gas_included'\n > &\n Pick<QuoteFetchData, 'price_impact'> &\n Pick<RequestParams, 'token_symbol_source' | 'token_symbol_destination'> & {\n stx_enabled: RequestMetadata['stx_enabled'];\n sort_order: SortOrder;\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n can_submit: QuoteFetchData['can_submit'];\n };\n [UnifiedSwapBridgeEventName.QuoteSelected]: TradeData & {\n is_best_quote: boolean;\n best_quote_provider: QuoteFetchData['best_quote_provider'];\n price_impact: QuoteFetchData['price_impact'];\n can_submit: QuoteFetchData['can_submit'];\n };\n};\n\n/**\n * Properties that can be derived from the bridge controller state\n */\nexport type EventPropertiesFromControllerState = {\n [UnifiedSwapBridgeEventName.ButtonClicked]: RequestParams;\n [UnifiedSwapBridgeEventName.PageViewed]: RequestParams;\n [UnifiedSwapBridgeEventName.InputChanged]: {\n input: InputKeys;\n input_value: string;\n };\n [UnifiedSwapBridgeEventName.InputSourceDestinationFlipped]: RequestParams;\n [UnifiedSwapBridgeEventName.QuotesRequested]: RequestParams &\n RequestMetadata & {\n has_sufficient_funds: boolean;\n };\n [UnifiedSwapBridgeEventName.QuotesReceived]: RequestParams &\n RequestMetadata &\n QuoteFetchData &\n TradeData & {\n refresh_count: number; // starts from 0\n };\n [UnifiedSwapBridgeEventName.QuoteError]: RequestParams &\n RequestMetadata & {\n has_sufficient_funds: boolean;\n error_message: string;\n };\n [UnifiedSwapBridgeEventName.SnapConfirmationViewed]: RequestMetadata &\n RequestParams &\n QuoteFetchData &\n TradeData;\n [UnifiedSwapBridgeEventName.Submitted]: RequestParams &\n RequestMetadata &\n TradeData &\n Pick<QuoteFetchData, 'price_impact'> & {};\n [UnifiedSwapBridgeEventName.Completed]: null;\n [UnifiedSwapBridgeEventName.Failed]: RequestParams &\n RequestMetadata &\n TxStatusData &\n TradeData &\n Pick<QuoteFetchData, 'price_impact'> & {\n actual_time_minutes: number;\n };\n [UnifiedSwapBridgeEventName.AllQuotesOpened]: RequestParams &\n RequestMetadata &\n TradeData &\n QuoteFetchData;\n [UnifiedSwapBridgeEventName.AllQuotesSorted]: RequestParams &\n RequestMetadata &\n TradeData &\n QuoteFetchData;\n [UnifiedSwapBridgeEventName.QuoteSelected]: RequestParams &\n RequestMetadata &\n QuoteFetchData &\n TradeData;\n};\n\n/**\n * trackUnifiedSwapBridgeEvent payload properties consist of required properties from the client\n * and properties from the bridge controller\n */\nexport type CrossChainSwapsEventProperties<\n T extends UnifiedSwapBridgeEventName,\n> =\n | {\n action_type: MetricsActionType;\n }\n | Pick<EventPropertiesFromControllerState, T>[T]\n | Pick<RequiredEventContextFromClient, T>[T];\n"]}
@@ -122,9 +122,8 @@ const calcRelayerFee = ({ quote, trade }, { exchangeRate, usdExchangeRate }) =>
122
122
  };
123
123
  };
124
124
  exports.calcRelayerFee = calcRelayerFee;
125
- const calcTotalGasFee = ({ bridgeQuote, feePerGasInDecGwei, priorityFeePerGasInDecGwei, nativeToDisplayCurrencyExchangeRate, nativeToUsdExchangeRate, }) => {
126
- const { approval, trade, l1GasFeesInHexWei } = bridgeQuote;
127
- const totalGasLimitInDec = new bignumber_js_1.BigNumber(trade.gasLimit?.toString() ?? '0').plus(approval?.gasLimit?.toString() ?? '0');
125
+ const calcTotalGasFee = ({ approvalGasLimit, tradeGasLimit, l1GasFeesInHexWei, feePerGasInDecGwei, priorityFeePerGasInDecGwei, nativeToDisplayCurrencyExchangeRate, nativeToUsdExchangeRate, }) => {
126
+ const totalGasLimitInDec = new bignumber_js_1.BigNumber(tradeGasLimit?.toString() ?? '0').plus(approvalGasLimit?.toString() ?? '0');
128
127
  const totalFeePerGasInDecGwei = new bignumber_js_1.BigNumber(feePerGasInDecGwei).plus(priorityFeePerGasInDecGwei);
129
128
  const l1GasFeesInDecGWei = (0, controller_utils_1.weiHexToGweiDec)((0, controller_utils_1.toHex)(l1GasFeesInHexWei ?? '0'));
130
129
  const gasFeesInDecGwei = totalGasLimitInDec
@@ -143,55 +142,93 @@ const calcTotalGasFee = ({ bridgeQuote, feePerGasInDecGwei, priorityFeePerGasInD
143
142
  usd: gasFeesInUSD?.toString() ?? null,
144
143
  };
145
144
  };
146
- const calcEstimatedAndMaxTotalGasFee = ({ bridgeQuote, estimatedBaseFeeInDecGwei, maxFeePerGasInDecGwei, maxPriorityFeePerGasInDecGwei, exchangeRate: nativeToDisplayCurrencyExchangeRate, usdExchangeRate: nativeToUsdExchangeRate, }) => {
145
+ const calcEstimatedAndMaxTotalGasFee = ({ bridgeQuote: { approval, trade, l1GasFeesInHexWei }, estimatedBaseFeeInDecGwei, maxFeePerGasInDecGwei, maxPriorityFeePerGasInDecGwei, exchangeRate: nativeToDisplayCurrencyExchangeRate, usdExchangeRate: nativeToUsdExchangeRate, }) => {
146
+ // Estimated gas fees spent after receiving refunds, this is shown to the user
147
+ const { amount: amountEffective, valueInCurrency: valueInCurrencyEffective, usd: usdEffective, } = calcTotalGasFee({
148
+ // Fallback to gasLimit if effectiveGas is not available
149
+ approvalGasLimit: approval?.effectiveGas ?? approval?.gasLimit,
150
+ tradeGasLimit: trade?.effectiveGas ?? trade?.gasLimit,
151
+ l1GasFeesInHexWei,
152
+ feePerGasInDecGwei: estimatedBaseFeeInDecGwei,
153
+ priorityFeePerGasInDecGwei: maxPriorityFeePerGasInDecGwei,
154
+ nativeToDisplayCurrencyExchangeRate,
155
+ nativeToUsdExchangeRate,
156
+ });
157
+ // Estimated total gas fee, including refunded fees (medium)
147
158
  const { amount, valueInCurrency, usd } = calcTotalGasFee({
148
- bridgeQuote,
159
+ approvalGasLimit: approval?.gasLimit,
160
+ tradeGasLimit: trade?.gasLimit,
161
+ l1GasFeesInHexWei,
149
162
  feePerGasInDecGwei: estimatedBaseFeeInDecGwei,
150
163
  priorityFeePerGasInDecGwei: maxPriorityFeePerGasInDecGwei,
151
164
  nativeToDisplayCurrencyExchangeRate,
152
165
  nativeToUsdExchangeRate,
153
166
  });
167
+ // Max gas fee (high), used to disable submission of the transaction
154
168
  const { amount: amountMax, valueInCurrency: valueInCurrencyMax, usd: usdMax, } = calcTotalGasFee({
155
- bridgeQuote,
169
+ approvalGasLimit: approval?.gasLimit,
170
+ tradeGasLimit: trade?.gasLimit,
171
+ l1GasFeesInHexWei,
156
172
  feePerGasInDecGwei: maxFeePerGasInDecGwei,
157
173
  priorityFeePerGasInDecGwei: maxPriorityFeePerGasInDecGwei,
158
174
  nativeToDisplayCurrencyExchangeRate,
159
175
  nativeToUsdExchangeRate,
160
176
  });
161
177
  return {
162
- amount,
163
- amountMax,
164
- valueInCurrency,
165
- valueInCurrencyMax,
166
- usd,
167
- usdMax,
178
+ effective: {
179
+ amount: amountEffective,
180
+ valueInCurrency: valueInCurrencyEffective,
181
+ usd: usdEffective,
182
+ },
183
+ total: {
184
+ amount,
185
+ valueInCurrency,
186
+ usd,
187
+ },
188
+ max: {
189
+ amount: amountMax,
190
+ valueInCurrency: valueInCurrencyMax,
191
+ usd: usdMax,
192
+ },
168
193
  };
169
194
  };
170
195
  exports.calcEstimatedAndMaxTotalGasFee = calcEstimatedAndMaxTotalGasFee;
171
- const calcTotalEstimatedNetworkFee = (gasFee, relayerFee) => {
196
+ /**
197
+ * Calculates the total estimated network fees for the bridge transaction
198
+ *
199
+ * @param gasFee - The gas fee for the bridge transaction
200
+ * @param gasFee.effective - The fee to display to the user. If not available, this is equal to the gasLimit (total)
201
+ * @param relayerFee - The relayer fee paid to bridge providers
202
+ * @returns The total estimated network fee for the bridge transaction, including the relayer fee paid to bridge providers
203
+ */
204
+ const calcTotalEstimatedNetworkFee = ({ effective: gasFeeToDisplay, }, relayerFee) => {
172
205
  return {
173
- amount: new bignumber_js_1.BigNumber(gasFee.amount).plus(relayerFee.amount).toString(),
174
- valueInCurrency: gasFee.valueInCurrency
175
- ? new bignumber_js_1.BigNumber(gasFee.valueInCurrency)
206
+ amount: new bignumber_js_1.BigNumber(gasFeeToDisplay?.amount ?? '0')
207
+ .plus(relayerFee.amount)
208
+ .toString(),
209
+ valueInCurrency: gasFeeToDisplay?.valueInCurrency
210
+ ? new bignumber_js_1.BigNumber(gasFeeToDisplay.valueInCurrency)
176
211
  .plus(relayerFee.valueInCurrency || '0')
177
212
  .toString()
178
213
  : null,
179
- usd: gasFee.usd
180
- ? new bignumber_js_1.BigNumber(gasFee.usd).plus(relayerFee.usd || '0').toString()
214
+ usd: gasFeeToDisplay?.usd
215
+ ? new bignumber_js_1.BigNumber(gasFeeToDisplay.usd)
216
+ .plus(relayerFee.usd || '0')
217
+ .toString()
181
218
  : null,
182
219
  };
183
220
  };
184
221
  exports.calcTotalEstimatedNetworkFee = calcTotalEstimatedNetworkFee;
185
222
  const calcTotalMaxNetworkFee = (gasFee, relayerFee) => {
186
223
  return {
187
- amount: new bignumber_js_1.BigNumber(gasFee.amountMax).plus(relayerFee.amount).toString(),
188
- valueInCurrency: gasFee.valueInCurrencyMax
189
- ? new bignumber_js_1.BigNumber(gasFee.valueInCurrencyMax)
224
+ amount: new bignumber_js_1.BigNumber(gasFee.max.amount).plus(relayerFee.amount).toString(),
225
+ valueInCurrency: gasFee.max.valueInCurrency
226
+ ? new bignumber_js_1.BigNumber(gasFee.max.valueInCurrency)
190
227
  .plus(relayerFee.valueInCurrency || '0')
191
228
  .toString()
192
229
  : null,
193
- usd: gasFee.usdMax
194
- ? new bignumber_js_1.BigNumber(gasFee.usdMax).plus(relayerFee.usd || '0').toString()
230
+ usd: gasFee.max.usd
231
+ ? new bignumber_js_1.BigNumber(gasFee.max.usd).plus(relayerFee.usd || '0').toString()
195
232
  : null,
196
233
  };
197
234
  };