@metamask-previews/bridge-controller 63.2.0-preview-159e76e4 → 64.0.0-preview-5c1b2b1

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 (102) hide show
  1. package/CHANGELOG.md +20 -3
  2. package/dist/bridge-controller.cjs +60 -34
  3. package/dist/bridge-controller.cjs.map +1 -1
  4. package/dist/bridge-controller.d.cts +2 -10
  5. package/dist/bridge-controller.d.cts.map +1 -1
  6. package/dist/bridge-controller.d.mts +2 -10
  7. package/dist/bridge-controller.d.mts.map +1 -1
  8. package/dist/bridge-controller.mjs +62 -36
  9. package/dist/bridge-controller.mjs.map +1 -1
  10. package/dist/constants/swaps.cjs +57 -58
  11. package/dist/constants/swaps.cjs.map +1 -1
  12. package/dist/constants/swaps.d.cts +0 -1
  13. package/dist/constants/swaps.d.cts.map +1 -1
  14. package/dist/constants/swaps.d.mts +0 -1
  15. package/dist/constants/swaps.d.mts.map +1 -1
  16. package/dist/constants/swaps.mjs +6 -7
  17. package/dist/constants/swaps.mjs.map +1 -1
  18. package/dist/constants/tokens.cjs +15 -16
  19. package/dist/constants/tokens.cjs.map +1 -1
  20. package/dist/constants/tokens.d.cts +3 -3
  21. package/dist/constants/tokens.d.cts.map +1 -1
  22. package/dist/constants/tokens.d.mts +3 -3
  23. package/dist/constants/tokens.d.mts.map +1 -1
  24. package/dist/constants/tokens.mjs +2 -3
  25. package/dist/constants/tokens.mjs.map +1 -1
  26. package/dist/index.cjs +4 -4
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +4 -4
  29. package/dist/index.d.cts.map +1 -1
  30. package/dist/index.d.mts +4 -4
  31. package/dist/index.d.mts.map +1 -1
  32. package/dist/index.mjs +4 -4
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/selectors.d.cts +702 -0
  35. package/dist/selectors.d.cts.map +1 -1
  36. package/dist/selectors.d.mts +702 -0
  37. package/dist/selectors.d.mts.map +1 -1
  38. package/dist/types.cjs +0 -1
  39. package/dist/types.cjs.map +1 -1
  40. package/dist/types.d.cts +9 -2
  41. package/dist/types.d.cts.map +1 -1
  42. package/dist/types.d.mts +9 -2
  43. package/dist/types.d.mts.map +1 -1
  44. package/dist/types.mjs +0 -1
  45. package/dist/types.mjs.map +1 -1
  46. package/dist/utils/bridge.cjs +28 -23
  47. package/dist/utils/bridge.cjs.map +1 -1
  48. package/dist/utils/bridge.d.cts +12 -12
  49. package/dist/utils/bridge.d.cts.map +1 -1
  50. package/dist/utils/bridge.d.mts +12 -12
  51. package/dist/utils/bridge.d.mts.map +1 -1
  52. package/dist/utils/bridge.mjs +26 -21
  53. package/dist/utils/bridge.mjs.map +1 -1
  54. package/dist/utils/caip-formatters.cjs.map +1 -1
  55. package/dist/utils/caip-formatters.d.cts +1 -2
  56. package/dist/utils/caip-formatters.d.cts.map +1 -1
  57. package/dist/utils/caip-formatters.d.mts +1 -2
  58. package/dist/utils/caip-formatters.d.mts.map +1 -1
  59. package/dist/utils/caip-formatters.mjs.map +1 -1
  60. package/dist/utils/fetch.cjs +22 -1
  61. package/dist/utils/fetch.cjs.map +1 -1
  62. package/dist/utils/fetch.d.cts.map +1 -1
  63. package/dist/utils/fetch.d.mts.map +1 -1
  64. package/dist/utils/fetch.mjs +22 -1
  65. package/dist/utils/fetch.mjs.map +1 -1
  66. package/dist/utils/metrics/properties.cjs.map +1 -1
  67. package/dist/utils/metrics/properties.d.cts +1 -2
  68. package/dist/utils/metrics/properties.d.cts.map +1 -1
  69. package/dist/utils/metrics/properties.d.mts +1 -2
  70. package/dist/utils/metrics/properties.d.mts.map +1 -1
  71. package/dist/utils/metrics/properties.mjs.map +1 -1
  72. package/dist/utils/metrics/types.cjs.map +1 -1
  73. package/dist/utils/metrics/types.d.cts +1 -1
  74. package/dist/utils/metrics/types.d.cts.map +1 -1
  75. package/dist/utils/metrics/types.d.mts +1 -1
  76. package/dist/utils/metrics/types.d.mts.map +1 -1
  77. package/dist/utils/metrics/types.mjs.map +1 -1
  78. package/dist/utils/quote-fees.cjs +1 -4
  79. package/dist/utils/quote-fees.cjs.map +1 -1
  80. package/dist/utils/quote-fees.d.cts +1 -1
  81. package/dist/utils/quote-fees.d.cts.map +1 -1
  82. package/dist/utils/quote-fees.d.mts +1 -1
  83. package/dist/utils/quote-fees.d.mts.map +1 -1
  84. package/dist/utils/quote-fees.mjs +1 -4
  85. package/dist/utils/quote-fees.mjs.map +1 -1
  86. package/dist/utils/quote.cjs +8 -3
  87. package/dist/utils/quote.cjs.map +1 -1
  88. package/dist/utils/quote.d.cts +1 -1
  89. package/dist/utils/quote.d.cts.map +1 -1
  90. package/dist/utils/quote.d.mts +1 -1
  91. package/dist/utils/quote.d.mts.map +1 -1
  92. package/dist/utils/quote.mjs +8 -3
  93. package/dist/utils/quote.mjs.map +1 -1
  94. package/dist/utils/swaps.cjs +45 -1
  95. package/dist/utils/swaps.cjs.map +1 -1
  96. package/dist/utils/swaps.d.cts +20 -0
  97. package/dist/utils/swaps.d.cts.map +1 -1
  98. package/dist/utils/swaps.d.mts +20 -0
  99. package/dist/utils/swaps.d.mts.map +1 -1
  100. package/dist/utils/swaps.mjs +43 -0
  101. package/dist/utils/swaps.mjs.map +1 -1
  102. package/package.json +3 -3
@@ -1,4 +1,7 @@
1
+ import { formatChainIdToDec } from "./caip-formatters.mjs";
2
+ import { CHAIN_IDS } from "../constants/chains.mjs";
1
3
  import { ALLOWED_CONTRACT_ADDRESSES, SWAPS_CONTRACT_ADDRESSES } from "../constants/swaps.mjs";
4
+ import { DEFAULT_TOKEN_ADDRESS, SWAPS_CHAINID_DEFAULT_TOKEN_MAP } from "../constants/tokens.mjs";
2
5
  /**
3
6
  * Checks if the given contract address is valid for the given chain ID.
4
7
  *
@@ -21,4 +24,44 @@ export function isValidSwapsContractAddress(chainId, contract) {
21
24
  export function getSwapsContractAddress(chainId) {
22
25
  return SWAPS_CONTRACT_ADDRESSES[chainId];
23
26
  }
27
+ /**
28
+ * Gets the client ID header.
29
+ *
30
+ * @param clientId - The client ID.
31
+ * @returns The client ID header.
32
+ */
33
+ function getClientIdHeader(clientId) {
34
+ if (!clientId) {
35
+ return undefined;
36
+ }
37
+ return {
38
+ 'X-Client-Id': clientId,
39
+ };
40
+ }
41
+ export const API_BASE_URL = 'https://swap.api.cx.metamask.io';
42
+ export const DEV_BASE_URL = 'https://swap.dev-api.cx.metamask.io';
43
+ /**
44
+ * Fetches token metadata from API URL.
45
+ *
46
+ * @param chainId - Current chainId.
47
+ * @param fetchFn - Fetch function.
48
+ * @param clientId - Client id.
49
+ * @returns Promise resolving to an object containing token metadata.
50
+ */
51
+ export async function fetchTokens(chainId, fetchFn, clientId) {
52
+ const [apiChainId, apiBaseUrl] = chainId === CHAIN_IDS.LOCALHOST
53
+ ? [CHAIN_IDS.MAINNET, DEV_BASE_URL]
54
+ : [chainId, API_BASE_URL];
55
+ const apiDecimalChainId = formatChainIdToDec(apiChainId);
56
+ const tokenUrl = `${apiBaseUrl}/networks/${apiDecimalChainId}/tokens`;
57
+ const tokens = await fetchFn(tokenUrl, {
58
+ headers: getClientIdHeader(clientId),
59
+ });
60
+ const filteredTokens = tokens.filter((token) => {
61
+ return token.address !== DEFAULT_TOKEN_ADDRESS;
62
+ });
63
+ const nativeSwapsToken = SWAPS_CHAINID_DEFAULT_TOKEN_MAP[chainId];
64
+ filteredTokens.push(nativeSwapsToken);
65
+ return filteredTokens;
66
+ }
24
67
  //# sourceMappingURL=swaps.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"swaps.mjs","sourceRoot":"","sources":["../../src/utils/swaps.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACzB,+BAA2B;AAE5B;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAY,EACZ,QAAyB;IAEzB,IAAI,CAAC,QAAQ,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC,IAAI,CAC7C,CAAC,eAAe,EAAE,EAAE,CAClB,QAAQ,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,WAAW,EAAE,CAC3D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAY;IAClD,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["import type { Hex } from '@metamask/utils';\n\nimport {\n ALLOWED_CONTRACT_ADDRESSES,\n SWAPS_CONTRACT_ADDRESSES,\n} from '../constants/swaps';\n\n/**\n * Checks if the given contract address is valid for the given chain ID.\n *\n * @param chainId - The chain ID.\n * @param contract - The contract address.\n * @returns True if the contract address is valid, false otherwise.\n */\nexport function isValidSwapsContractAddress(\n chainId: Hex,\n contract: Hex | undefined,\n): boolean {\n if (!contract || !ALLOWED_CONTRACT_ADDRESSES[chainId]) {\n return false;\n }\n return ALLOWED_CONTRACT_ADDRESSES[chainId].some(\n (allowedContract) =>\n contract.toLowerCase() === allowedContract.toLowerCase(),\n );\n}\n\n/**\n * Gets the swaps contract address for the given chain ID.\n *\n * @param chainId - The chain ID.\n * @returns The swaps contract address.\n */\nexport function getSwapsContractAddress(chainId: Hex): string {\n return SWAPS_CONTRACT_ADDRESSES[chainId];\n}\n"]}
1
+ {"version":3,"file":"swaps.mjs","sourceRoot":"","sources":["../../src/utils/swaps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,8BAA0B;AACvD,OAAO,EAAE,SAAS,EAAE,gCAA4B;AAChD,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACzB,+BAA2B;AAC5B,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAChC,gCAA4B;AAG7B;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAY,EACZ,QAAyB;IAEzB,IAAI,CAAC,QAAQ,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC,IAAI,CAC7C,CAAC,eAAe,EAAE,EAAE,CAClB,QAAQ,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,WAAW,EAAE,CAC3D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAY;IAClD,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,QAAiB;IAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,aAAa,EAAE,QAAQ;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,iCAAiC,CAAC;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAG,qCAAqC,CAAC;AAWlE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAY,EACZ,OAAsB,EACtB,QAAiB;IAEjB,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAC5B,OAAO,KAAK,SAAS,CAAC,SAAS;QAC7B,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;QACnC,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE9B,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,GAAG,UAAU,aAAa,iBAAiB,SAAS,CAAC;IAEtE,MAAM,MAAM,GAAiB,MAAM,OAAO,CAAC,QAAQ,EAAE;QACnD,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC;KACrC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7C,OAAO,KAAK,CAAC,OAAO,KAAK,qBAAqB,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GACpB,+BAA+B,CAC7B,OAAuD,CACxD,CAAC;IAEJ,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACtC,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["import type { Hex } from '@metamask/utils';\n\nimport { formatChainIdToDec } from './caip-formatters';\nimport { CHAIN_IDS } from '../constants/chains';\nimport {\n ALLOWED_CONTRACT_ADDRESSES,\n SWAPS_CONTRACT_ADDRESSES,\n} from '../constants/swaps';\nimport {\n DEFAULT_TOKEN_ADDRESS,\n SWAPS_CHAINID_DEFAULT_TOKEN_MAP,\n} from '../constants/tokens';\nimport type { FetchFunction } from '../types';\n\n/**\n * Checks if the given contract address is valid for the given chain ID.\n *\n * @param chainId - The chain ID.\n * @param contract - The contract address.\n * @returns True if the contract address is valid, false otherwise.\n */\nexport function isValidSwapsContractAddress(\n chainId: Hex,\n contract: Hex | undefined,\n): boolean {\n if (!contract || !ALLOWED_CONTRACT_ADDRESSES[chainId]) {\n return false;\n }\n return ALLOWED_CONTRACT_ADDRESSES[chainId].some(\n (allowedContract) =>\n contract.toLowerCase() === allowedContract.toLowerCase(),\n );\n}\n\n/**\n * Gets the swaps contract address for the given chain ID.\n *\n * @param chainId - The chain ID.\n * @returns The swaps contract address.\n */\nexport function getSwapsContractAddress(chainId: Hex): string {\n return SWAPS_CONTRACT_ADDRESSES[chainId];\n}\n\n/**\n * Gets the client ID header.\n *\n * @param clientId - The client ID.\n * @returns The client ID header.\n */\nfunction getClientIdHeader(clientId?: string) {\n if (!clientId) {\n return undefined;\n }\n return {\n 'X-Client-Id': clientId,\n };\n}\n\nexport const API_BASE_URL = 'https://swap.api.cx.metamask.io';\nexport const DEV_BASE_URL = 'https://swap.dev-api.cx.metamask.io';\n\nexport type SwapsToken = {\n address: string;\n symbol: string;\n name?: string;\n decimals: number;\n iconUrl?: string;\n occurrences?: number;\n};\n\n/**\n * Fetches token metadata from API URL.\n *\n * @param chainId - Current chainId.\n * @param fetchFn - Fetch function.\n * @param clientId - Client id.\n * @returns Promise resolving to an object containing token metadata.\n */\nexport async function fetchTokens(\n chainId: Hex,\n fetchFn: FetchFunction,\n clientId?: string,\n): Promise<SwapsToken[]> {\n const [apiChainId, apiBaseUrl] =\n chainId === CHAIN_IDS.LOCALHOST\n ? [CHAIN_IDS.MAINNET, DEV_BASE_URL]\n : [chainId, API_BASE_URL];\n\n const apiDecimalChainId = formatChainIdToDec(apiChainId);\n const tokenUrl = `${apiBaseUrl}/networks/${apiDecimalChainId}/tokens`;\n\n const tokens: SwapsToken[] = await fetchFn(tokenUrl, {\n headers: getClientIdHeader(clientId),\n });\n\n const filteredTokens = tokens.filter((token) => {\n return token.address !== DEFAULT_TOKEN_ADDRESS;\n });\n\n const nativeSwapsToken =\n SWAPS_CHAINID_DEFAULT_TOKEN_MAP[\n chainId as keyof typeof SWAPS_CHAINID_DEFAULT_TOKEN_MAP\n ];\n\n filteredTokens.push(nativeSwapsToken);\n return filteredTokens;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/bridge-controller",
3
- "version": "63.2.0-preview-159e76e4",
3
+ "version": "64.0.0-preview-5c1b2b1",
4
4
  "description": "Manages bridge-related quote fetching functionality for MetaMask",
5
5
  "keywords": [
6
6
  "MetaMask",
@@ -54,7 +54,7 @@
54
54
  "@ethersproject/contracts": "^5.7.0",
55
55
  "@ethersproject/providers": "^5.7.0",
56
56
  "@metamask/accounts-controller": "^35.0.0",
57
- "@metamask/assets-controllers": "^92.0.0",
57
+ "@metamask/assets-controllers": "^93.0.0",
58
58
  "@metamask/base-controller": "^9.0.0",
59
59
  "@metamask/controller-utils": "^11.16.0",
60
60
  "@metamask/gas-fee-controller": "^26.0.0",
@@ -66,7 +66,7 @@
66
66
  "@metamask/polling-controller": "^16.0.0",
67
67
  "@metamask/remote-feature-flag-controller": "^2.0.1",
68
68
  "@metamask/snaps-controllers": "^14.0.1",
69
- "@metamask/transaction-controller": "^62.3.1",
69
+ "@metamask/transaction-controller": "^62.4.0",
70
70
  "@metamask/utils": "^11.8.1",
71
71
  "bignumber.js": "^9.1.2",
72
72
  "reselect": "^5.1.1",