@metamask-previews/transaction-pay-controller 16.0.0-preview-d1f62d044 → 16.0.0-preview-06d68e653

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/dist/TransactionPayController.cjs +5 -16
  3. package/dist/TransactionPayController.cjs.map +1 -1
  4. package/dist/TransactionPayController.d.cts +1 -1
  5. package/dist/TransactionPayController.d.cts.map +1 -1
  6. package/dist/TransactionPayController.d.mts +1 -1
  7. package/dist/TransactionPayController.d.mts.map +1 -1
  8. package/dist/TransactionPayController.mjs +6 -17
  9. package/dist/TransactionPayController.mjs.map +1 -1
  10. package/dist/constants.cjs +1 -12
  11. package/dist/constants.cjs.map +1 -1
  12. package/dist/constants.d.cts +0 -7
  13. package/dist/constants.d.cts.map +1 -1
  14. package/dist/constants.d.mts +0 -7
  15. package/dist/constants.d.mts.map +1 -1
  16. package/dist/constants.mjs +0 -10
  17. package/dist/constants.mjs.map +1 -1
  18. package/dist/helpers/QuoteRefresher.cjs +4 -7
  19. package/dist/helpers/QuoteRefresher.cjs.map +1 -1
  20. package/dist/helpers/QuoteRefresher.d.cts +1 -4
  21. package/dist/helpers/QuoteRefresher.d.cts.map +1 -1
  22. package/dist/helpers/QuoteRefresher.d.mts +1 -4
  23. package/dist/helpers/QuoteRefresher.d.mts.map +1 -1
  24. package/dist/helpers/QuoteRefresher.mjs +4 -7
  25. package/dist/helpers/QuoteRefresher.mjs.map +1 -1
  26. package/dist/helpers/TransactionPayPublishHook.cjs +1 -1
  27. package/dist/helpers/TransactionPayPublishHook.cjs.map +1 -1
  28. package/dist/helpers/TransactionPayPublishHook.mjs +2 -2
  29. package/dist/helpers/TransactionPayPublishHook.mjs.map +1 -1
  30. package/dist/types.cjs.map +1 -1
  31. package/dist/types.d.cts +0 -7
  32. package/dist/types.d.cts.map +1 -1
  33. package/dist/types.d.mts +0 -7
  34. package/dist/types.d.mts.map +1 -1
  35. package/dist/types.mjs.map +1 -1
  36. package/dist/utils/feature-flags.cjs +3 -26
  37. package/dist/utils/feature-flags.cjs.map +1 -1
  38. package/dist/utils/feature-flags.d.cts +0 -11
  39. package/dist/utils/feature-flags.d.cts.map +1 -1
  40. package/dist/utils/feature-flags.d.mts +0 -11
  41. package/dist/utils/feature-flags.d.mts.map +1 -1
  42. package/dist/utils/feature-flags.mjs +0 -23
  43. package/dist/utils/feature-flags.mjs.map +1 -1
  44. package/dist/utils/quotes.cjs +26 -62
  45. package/dist/utils/quotes.cjs.map +1 -1
  46. package/dist/utils/quotes.d.cts +1 -5
  47. package/dist/utils/quotes.d.cts.map +1 -1
  48. package/dist/utils/quotes.d.mts +1 -5
  49. package/dist/utils/quotes.d.mts.map +1 -1
  50. package/dist/utils/quotes.mjs +27 -63
  51. package/dist/utils/quotes.mjs.map +1 -1
  52. package/dist/utils/strategy.cjs +13 -25
  53. package/dist/utils/strategy.cjs.map +1 -1
  54. package/dist/utils/strategy.d.cts +10 -13
  55. package/dist/utils/strategy.d.cts.map +1 -1
  56. package/dist/utils/strategy.d.mts +10 -13
  57. package/dist/utils/strategy.d.mts.map +1 -1
  58. package/dist/utils/strategy.mjs +11 -23
  59. package/dist/utils/strategy.mjs.map +1 -1
  60. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ### Added
11
-
12
- - Add ordered strategy fallback mechanism for quote retrieval ([#7868](https://github.com/MetaMask/core/pull/7868))
13
-
14
10
  ## [16.0.0]
15
11
 
16
12
  ### Added
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
11
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
12
  };
13
- var _TransactionPayController_instances, _TransactionPayController_getDelegationTransaction, _TransactionPayController_getStrategy, _TransactionPayController_getStrategies, _TransactionPayController_removeTransactionData, _TransactionPayController_updateTransactionData, _TransactionPayController_registerActionHandlers, _TransactionPayController_getStrategiesWithFallback;
13
+ var _TransactionPayController_instances, _TransactionPayController_getDelegationTransaction, _TransactionPayController_getStrategy, _TransactionPayController_removeTransactionData, _TransactionPayController_updateTransactionData, _TransactionPayController_registerActionHandlers;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.TransactionPayController = void 0;
16
16
  const base_controller_1 = require("@metamask/base-controller");
@@ -18,7 +18,6 @@ const lodash_1 = require("lodash");
18
18
  const update_payment_token_1 = require("./actions/update-payment-token.cjs");
19
19
  const constants_1 = require("./constants.cjs");
20
20
  const QuoteRefresher_1 = require("./helpers/QuoteRefresher.cjs");
21
- const feature_flags_1 = require("./utils/feature-flags.cjs");
22
21
  const quotes_1 = require("./utils/quotes.cjs");
23
22
  const source_amounts_1 = require("./utils/source-amounts.cjs");
24
23
  const transaction_1 = require("./utils/transaction.cjs");
@@ -34,7 +33,7 @@ const getDefaultState = () => ({
34
33
  transactionData: {},
35
34
  });
36
35
  class TransactionPayController extends base_controller_1.BaseController {
37
- constructor({ getDelegationTransaction, getStrategy, getStrategies, messenger, state, }) {
36
+ constructor({ getDelegationTransaction, getStrategy, messenger, state, }) {
38
37
  super({
39
38
  name: constants_1.CONTROLLER_NAME,
40
39
  metadata: stateMetadata,
@@ -44,15 +43,12 @@ class TransactionPayController extends base_controller_1.BaseController {
44
43
  _TransactionPayController_instances.add(this);
45
44
  _TransactionPayController_getDelegationTransaction.set(this, void 0);
46
45
  _TransactionPayController_getStrategy.set(this, void 0);
47
- _TransactionPayController_getStrategies.set(this, void 0);
48
46
  __classPrivateFieldSet(this, _TransactionPayController_getDelegationTransaction, getDelegationTransaction, "f");
49
47
  __classPrivateFieldSet(this, _TransactionPayController_getStrategy, getStrategy, "f");
50
- __classPrivateFieldSet(this, _TransactionPayController_getStrategies, getStrategies, "f");
51
48
  __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_registerActionHandlers).call(this);
52
49
  (0, transaction_1.pollTransactionChanges)(messenger, __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_updateTransactionData).bind(this), __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_removeTransactionData).bind(this));
53
50
  // eslint-disable-next-line no-new
54
51
  new QuoteRefresher_1.QuoteRefresher({
55
- getStrategies: __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_getStrategiesWithFallback).bind(this),
56
52
  messenger,
57
53
  updateTransactionData: __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_updateTransactionData).bind(this),
58
54
  });
@@ -76,7 +72,7 @@ class TransactionPayController extends base_controller_1.BaseController {
76
72
  }
77
73
  }
78
74
  exports.TransactionPayController = TransactionPayController;
79
- _TransactionPayController_getDelegationTransaction = new WeakMap(), _TransactionPayController_getStrategy = new WeakMap(), _TransactionPayController_getStrategies = new WeakMap(), _TransactionPayController_instances = new WeakSet(), _TransactionPayController_removeTransactionData = function _TransactionPayController_removeTransactionData(transactionId) {
75
+ _TransactionPayController_getDelegationTransaction = new WeakMap(), _TransactionPayController_getStrategy = new WeakMap(), _TransactionPayController_instances = new WeakSet(), _TransactionPayController_removeTransactionData = function _TransactionPayController_removeTransactionData(transactionId) {
80
76
  this.update((state) => {
81
77
  delete state.transactionData[transactionId];
82
78
  });
@@ -113,7 +109,6 @@ _TransactionPayController_getDelegationTransaction = new WeakMap(), _Transaction
113
109
  });
114
110
  if (shouldUpdateQuotes) {
115
111
  (0, quotes_1.updateQuotes)({
116
- getStrategies: __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_getStrategiesWithFallback).bind(this),
117
112
  messenger: this.messenger,
118
113
  transactionData: this.state.transactionData[transactionId],
119
114
  transactionId,
@@ -122,15 +117,9 @@ _TransactionPayController_getDelegationTransaction = new WeakMap(), _Transaction
122
117
  }
123
118
  }, _TransactionPayController_registerActionHandlers = function _TransactionPayController_registerActionHandlers() {
124
119
  this.messenger.registerActionHandler('TransactionPayController:getDelegationTransaction', __classPrivateFieldGet(this, _TransactionPayController_getDelegationTransaction, "f").bind(this));
125
- this.messenger.registerActionHandler('TransactionPayController:getStrategy', (transaction) => __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_getStrategiesWithFallback).call(this, transaction)[0]);
120
+ this.messenger.registerActionHandler('TransactionPayController:getStrategy', __classPrivateFieldGet(this, _TransactionPayController_getStrategy, "f") ??
121
+ (() => constants_1.TransactionPayStrategy.Relay));
126
122
  this.messenger.registerActionHandler('TransactionPayController:setTransactionConfig', this.setTransactionConfig.bind(this));
127
123
  this.messenger.registerActionHandler('TransactionPayController:updatePaymentToken', this.updatePaymentToken.bind(this));
128
- }, _TransactionPayController_getStrategiesWithFallback = function _TransactionPayController_getStrategiesWithFallback(transaction) {
129
- const strategyCandidates = __classPrivateFieldGet(this, _TransactionPayController_getStrategies, "f")?.call(this, transaction) ??
130
- (__classPrivateFieldGet(this, _TransactionPayController_getStrategy, "f") ? [__classPrivateFieldGet(this, _TransactionPayController_getStrategy, "f").call(this, transaction)] : []);
131
- const validStrategies = strategyCandidates.filter((strategy) => (0, constants_1.isTransactionPayStrategy)(strategy));
132
- return validStrategies.length
133
- ? validStrategies
134
- : (0, feature_flags_1.getStrategyOrder)(this.messenger);
135
124
  };
136
125
  //# sourceMappingURL=TransactionPayController.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionPayController.cjs","sourceRoot":"","sources":["../src/TransactionPayController.ts"],"names":[],"mappings":"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","sourcesContent":["import type { StateMetadata } from '@metamask/base-controller';\nimport { BaseController } from '@metamask/base-controller';\nimport type { TransactionMeta } from '@metamask/transaction-controller';\nimport type { Draft } from 'immer';\nimport { noop } from 'lodash';\n\nimport { updatePaymentToken } from './actions/update-payment-token';\nimport {\n CONTROLLER_NAME,\n isTransactionPayStrategy,\n TransactionPayStrategy,\n} from './constants';\nimport { QuoteRefresher } from './helpers/QuoteRefresher';\nimport type {\n GetDelegationTransactionCallback,\n TransactionConfigCallback,\n TransactionData,\n TransactionPayControllerMessenger,\n TransactionPayControllerOptions,\n TransactionPayControllerState,\n UpdatePaymentTokenRequest,\n} from './types';\nimport { getStrategyOrder } from './utils/feature-flags';\nimport { updateQuotes } from './utils/quotes';\nimport { updateSourceAmounts } from './utils/source-amounts';\nimport { pollTransactionChanges } from './utils/transaction';\n\nconst stateMetadata: StateMetadata<TransactionPayControllerState> = {\n transactionData: {\n includeInDebugSnapshot: false,\n includeInStateLogs: true,\n persist: false,\n usedInUi: true,\n },\n};\n\nconst getDefaultState = (): TransactionPayControllerState => ({\n transactionData: {},\n});\n\nexport class TransactionPayController extends BaseController<\n typeof CONTROLLER_NAME,\n TransactionPayControllerState,\n TransactionPayControllerMessenger\n> {\n readonly #getDelegationTransaction: GetDelegationTransactionCallback;\n\n readonly #getStrategy?: (\n transaction: TransactionMeta,\n ) => TransactionPayStrategy;\n\n readonly #getStrategies?: (\n transaction: TransactionMeta,\n ) => TransactionPayStrategy[];\n\n constructor({\n getDelegationTransaction,\n getStrategy,\n getStrategies,\n messenger,\n state,\n }: TransactionPayControllerOptions) {\n super({\n name: CONTROLLER_NAME,\n metadata: stateMetadata,\n messenger,\n state: { ...getDefaultState(), ...state },\n });\n\n this.#getDelegationTransaction = getDelegationTransaction;\n this.#getStrategy = getStrategy;\n this.#getStrategies = getStrategies;\n\n this.#registerActionHandlers();\n\n pollTransactionChanges(\n messenger,\n this.#updateTransactionData.bind(this),\n this.#removeTransactionData.bind(this),\n );\n\n // eslint-disable-next-line no-new\n new QuoteRefresher({\n getStrategies: this.#getStrategiesWithFallback.bind(this),\n messenger,\n updateTransactionData: this.#updateTransactionData.bind(this),\n });\n }\n\n setTransactionConfig(\n transactionId: string,\n callback: TransactionConfigCallback,\n ): void {\n this.#updateTransactionData(transactionId, (transactionData) => {\n const config = {\n isMaxAmount: transactionData.isMaxAmount,\n isPostQuote: transactionData.isPostQuote,\n };\n\n callback(config);\n\n transactionData.isMaxAmount = config.isMaxAmount;\n transactionData.isPostQuote = config.isPostQuote;\n });\n }\n\n updatePaymentToken(request: UpdatePaymentTokenRequest): void {\n updatePaymentToken(request, {\n messenger: this.messenger,\n updateTransactionData: this.#updateTransactionData.bind(this),\n });\n }\n\n #removeTransactionData(transactionId: string): void {\n this.update((state) => {\n delete state.transactionData[transactionId];\n });\n }\n\n #updateTransactionData(\n transactionId: string,\n fn: (transactionData: Draft<TransactionData>) => void,\n ): void {\n let shouldUpdateQuotes = false;\n\n this.update((state) => {\n const { transactionData } = state;\n let current = transactionData[transactionId];\n const originalPaymentToken = current?.paymentToken;\n const originalTokens = current?.tokens;\n const originalIsMaxAmount = current?.isMaxAmount;\n const originalIsPostQuote = current?.isPostQuote;\n\n if (!current) {\n transactionData[transactionId] = {\n isLoading: false,\n tokens: [],\n };\n\n current = transactionData[transactionId];\n }\n\n fn(current);\n\n const isPaymentTokenUpdated =\n current.paymentToken?.address?.toLowerCase() !==\n originalPaymentToken?.address?.toLowerCase() ||\n current.paymentToken?.chainId !== originalPaymentToken?.chainId;\n\n const isTokensUpdated = current.tokens !== originalTokens;\n const isIsMaxUpdated = current.isMaxAmount !== originalIsMaxAmount;\n const isPostQuoteUpdated = current.isPostQuote !== originalIsPostQuote;\n\n if (\n isPaymentTokenUpdated ||\n isIsMaxUpdated ||\n isTokensUpdated ||\n isPostQuoteUpdated\n ) {\n updateSourceAmounts(transactionId, current as never, this.messenger);\n\n shouldUpdateQuotes = true;\n }\n });\n\n if (shouldUpdateQuotes) {\n updateQuotes({\n getStrategies: this.#getStrategiesWithFallback.bind(this),\n messenger: this.messenger,\n transactionData: this.state.transactionData[transactionId],\n transactionId,\n updateTransactionData: this.#updateTransactionData.bind(this),\n }).catch(noop);\n }\n }\n\n #registerActionHandlers(): void {\n this.messenger.registerActionHandler(\n 'TransactionPayController:getDelegationTransaction',\n this.#getDelegationTransaction.bind(this),\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:getStrategy',\n (transaction: TransactionMeta): TransactionPayStrategy =>\n this.#getStrategiesWithFallback(transaction)[0],\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:setTransactionConfig',\n this.setTransactionConfig.bind(this),\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:updatePaymentToken',\n this.updatePaymentToken.bind(this),\n );\n }\n\n #getStrategiesWithFallback(\n transaction: TransactionMeta,\n ): TransactionPayStrategy[] {\n const strategyCandidates: unknown[] =\n this.#getStrategies?.(transaction) ??\n (this.#getStrategy ? [this.#getStrategy(transaction)] : []);\n\n const validStrategies = strategyCandidates.filter(\n (strategy): strategy is TransactionPayStrategy =>\n isTransactionPayStrategy(strategy),\n );\n\n return validStrategies.length\n ? validStrategies\n : getStrategyOrder(this.messenger);\n }\n}\n"]}
1
+ {"version":3,"file":"TransactionPayController.cjs","sourceRoot":"","sources":["../src/TransactionPayController.ts"],"names":[],"mappings":"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","sourcesContent":["import type { StateMetadata } from '@metamask/base-controller';\nimport { BaseController } from '@metamask/base-controller';\nimport type { TransactionMeta } from '@metamask/transaction-controller';\nimport type { Draft } from 'immer';\nimport { noop } from 'lodash';\n\nimport { updatePaymentToken } from './actions/update-payment-token';\nimport { CONTROLLER_NAME, TransactionPayStrategy } from './constants';\nimport { QuoteRefresher } from './helpers/QuoteRefresher';\nimport type {\n GetDelegationTransactionCallback,\n TransactionConfigCallback,\n TransactionData,\n TransactionPayControllerMessenger,\n TransactionPayControllerOptions,\n TransactionPayControllerState,\n UpdatePaymentTokenRequest,\n} from './types';\nimport { updateQuotes } from './utils/quotes';\nimport { updateSourceAmounts } from './utils/source-amounts';\nimport { pollTransactionChanges } from './utils/transaction';\n\nconst stateMetadata: StateMetadata<TransactionPayControllerState> = {\n transactionData: {\n includeInDebugSnapshot: false,\n includeInStateLogs: true,\n persist: false,\n usedInUi: true,\n },\n};\n\nconst getDefaultState = (): TransactionPayControllerState => ({\n transactionData: {},\n});\n\nexport class TransactionPayController extends BaseController<\n typeof CONTROLLER_NAME,\n TransactionPayControllerState,\n TransactionPayControllerMessenger\n> {\n readonly #getDelegationTransaction: GetDelegationTransactionCallback;\n\n readonly #getStrategy?: (\n transaction: TransactionMeta,\n ) => TransactionPayStrategy;\n\n constructor({\n getDelegationTransaction,\n getStrategy,\n messenger,\n state,\n }: TransactionPayControllerOptions) {\n super({\n name: CONTROLLER_NAME,\n metadata: stateMetadata,\n messenger,\n state: { ...getDefaultState(), ...state },\n });\n\n this.#getDelegationTransaction = getDelegationTransaction;\n this.#getStrategy = getStrategy;\n\n this.#registerActionHandlers();\n\n pollTransactionChanges(\n messenger,\n this.#updateTransactionData.bind(this),\n this.#removeTransactionData.bind(this),\n );\n\n // eslint-disable-next-line no-new\n new QuoteRefresher({\n messenger,\n updateTransactionData: this.#updateTransactionData.bind(this),\n });\n }\n\n setTransactionConfig(\n transactionId: string,\n callback: TransactionConfigCallback,\n ): void {\n this.#updateTransactionData(transactionId, (transactionData) => {\n const config = {\n isMaxAmount: transactionData.isMaxAmount,\n isPostQuote: transactionData.isPostQuote,\n };\n\n callback(config);\n\n transactionData.isMaxAmount = config.isMaxAmount;\n transactionData.isPostQuote = config.isPostQuote;\n });\n }\n\n updatePaymentToken(request: UpdatePaymentTokenRequest): void {\n updatePaymentToken(request, {\n messenger: this.messenger,\n updateTransactionData: this.#updateTransactionData.bind(this),\n });\n }\n\n #removeTransactionData(transactionId: string): void {\n this.update((state) => {\n delete state.transactionData[transactionId];\n });\n }\n\n #updateTransactionData(\n transactionId: string,\n fn: (transactionData: Draft<TransactionData>) => void,\n ): void {\n let shouldUpdateQuotes = false;\n\n this.update((state) => {\n const { transactionData } = state;\n let current = transactionData[transactionId];\n const originalPaymentToken = current?.paymentToken;\n const originalTokens = current?.tokens;\n const originalIsMaxAmount = current?.isMaxAmount;\n const originalIsPostQuote = current?.isPostQuote;\n\n if (!current) {\n transactionData[transactionId] = {\n isLoading: false,\n tokens: [],\n };\n\n current = transactionData[transactionId];\n }\n\n fn(current);\n\n const isPaymentTokenUpdated =\n current.paymentToken?.address?.toLowerCase() !==\n originalPaymentToken?.address?.toLowerCase() ||\n current.paymentToken?.chainId !== originalPaymentToken?.chainId;\n\n const isTokensUpdated = current.tokens !== originalTokens;\n const isIsMaxUpdated = current.isMaxAmount !== originalIsMaxAmount;\n const isPostQuoteUpdated = current.isPostQuote !== originalIsPostQuote;\n\n if (\n isPaymentTokenUpdated ||\n isIsMaxUpdated ||\n isTokensUpdated ||\n isPostQuoteUpdated\n ) {\n updateSourceAmounts(transactionId, current as never, this.messenger);\n\n shouldUpdateQuotes = true;\n }\n });\n\n if (shouldUpdateQuotes) {\n updateQuotes({\n messenger: this.messenger,\n transactionData: this.state.transactionData[transactionId],\n transactionId,\n updateTransactionData: this.#updateTransactionData.bind(this),\n }).catch(noop);\n }\n }\n\n #registerActionHandlers(): void {\n this.messenger.registerActionHandler(\n 'TransactionPayController:getDelegationTransaction',\n this.#getDelegationTransaction.bind(this),\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:getStrategy',\n this.#getStrategy ??\n ((): TransactionPayStrategy => TransactionPayStrategy.Relay),\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:setTransactionConfig',\n this.setTransactionConfig.bind(this),\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:updatePaymentToken',\n this.updatePaymentToken.bind(this),\n );\n }\n}\n"]}
@@ -3,7 +3,7 @@ import { CONTROLLER_NAME } from "./constants.cjs";
3
3
  import type { TransactionConfigCallback, TransactionPayControllerMessenger, TransactionPayControllerOptions, TransactionPayControllerState, UpdatePaymentTokenRequest } from "./types.cjs";
4
4
  export declare class TransactionPayController extends BaseController<typeof CONTROLLER_NAME, TransactionPayControllerState, TransactionPayControllerMessenger> {
5
5
  #private;
6
- constructor({ getDelegationTransaction, getStrategy, getStrategies, messenger, state, }: TransactionPayControllerOptions);
6
+ constructor({ getDelegationTransaction, getStrategy, messenger, state, }: TransactionPayControllerOptions);
7
7
  setTransactionConfig(transactionId: string, callback: TransactionConfigCallback): void;
8
8
  updatePaymentToken(request: UpdatePaymentTokenRequest): void;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionPayController.d.cts","sourceRoot":"","sources":["../src/TransactionPayController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAM3D,OAAO,EACL,eAAe,EAGhB,wBAAoB;AAErB,OAAO,KAAK,EAEV,yBAAyB,EAEzB,iCAAiC,EACjC,+BAA+B,EAC/B,6BAA6B,EAC7B,yBAAyB,EAC1B,oBAAgB;AAmBjB,qBAAa,wBAAyB,SAAQ,cAAc,CAC1D,OAAO,eAAe,EACtB,6BAA6B,EAC7B,iCAAiC,CAClC;;gBAWa,EACV,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,SAAS,EACT,KAAK,GACN,EAAE,+BAA+B;IA4BlC,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,yBAAyB,GAClC,IAAI;IAcP,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;CA6G7D"}
1
+ {"version":3,"file":"TransactionPayController.d.cts","sourceRoot":"","sources":["../src/TransactionPayController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAM3D,OAAO,EAAE,eAAe,EAA0B,wBAAoB;AAEtE,OAAO,KAAK,EAEV,yBAAyB,EAEzB,iCAAiC,EACjC,+BAA+B,EAC/B,6BAA6B,EAC7B,yBAAyB,EAC1B,oBAAgB;AAkBjB,qBAAa,wBAAyB,SAAQ,cAAc,CAC1D,OAAO,eAAe,EACtB,6BAA6B,EAC7B,iCAAiC,CAClC;;gBAOa,EACV,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,KAAK,GACN,EAAE,+BAA+B;IA0BlC,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,yBAAyB,GAClC,IAAI;IAcP,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;CA2F7D"}
@@ -3,7 +3,7 @@ import { CONTROLLER_NAME } from "./constants.mjs";
3
3
  import type { TransactionConfigCallback, TransactionPayControllerMessenger, TransactionPayControllerOptions, TransactionPayControllerState, UpdatePaymentTokenRequest } from "./types.mjs";
4
4
  export declare class TransactionPayController extends BaseController<typeof CONTROLLER_NAME, TransactionPayControllerState, TransactionPayControllerMessenger> {
5
5
  #private;
6
- constructor({ getDelegationTransaction, getStrategy, getStrategies, messenger, state, }: TransactionPayControllerOptions);
6
+ constructor({ getDelegationTransaction, getStrategy, messenger, state, }: TransactionPayControllerOptions);
7
7
  setTransactionConfig(transactionId: string, callback: TransactionConfigCallback): void;
8
8
  updatePaymentToken(request: UpdatePaymentTokenRequest): void;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionPayController.d.mts","sourceRoot":"","sources":["../src/TransactionPayController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAM3D,OAAO,EACL,eAAe,EAGhB,wBAAoB;AAErB,OAAO,KAAK,EAEV,yBAAyB,EAEzB,iCAAiC,EACjC,+BAA+B,EAC/B,6BAA6B,EAC7B,yBAAyB,EAC1B,oBAAgB;AAmBjB,qBAAa,wBAAyB,SAAQ,cAAc,CAC1D,OAAO,eAAe,EACtB,6BAA6B,EAC7B,iCAAiC,CAClC;;gBAWa,EACV,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,SAAS,EACT,KAAK,GACN,EAAE,+BAA+B;IA4BlC,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,yBAAyB,GAClC,IAAI;IAcP,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;CA6G7D"}
1
+ {"version":3,"file":"TransactionPayController.d.mts","sourceRoot":"","sources":["../src/TransactionPayController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAM3D,OAAO,EAAE,eAAe,EAA0B,wBAAoB;AAEtE,OAAO,KAAK,EAEV,yBAAyB,EAEzB,iCAAiC,EACjC,+BAA+B,EAC/B,6BAA6B,EAC7B,yBAAyB,EAC1B,oBAAgB;AAkBjB,qBAAa,wBAAyB,SAAQ,cAAc,CAC1D,OAAO,eAAe,EACtB,6BAA6B,EAC7B,iCAAiC,CAClC;;gBAOa,EACV,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,KAAK,GACN,EAAE,+BAA+B;IA0BlC,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,yBAAyB,GAClC,IAAI;IAcP,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;CA2F7D"}
@@ -9,14 +9,13 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _TransactionPayController_instances, _TransactionPayController_getDelegationTransaction, _TransactionPayController_getStrategy, _TransactionPayController_getStrategies, _TransactionPayController_removeTransactionData, _TransactionPayController_updateTransactionData, _TransactionPayController_registerActionHandlers, _TransactionPayController_getStrategiesWithFallback;
12
+ var _TransactionPayController_instances, _TransactionPayController_getDelegationTransaction, _TransactionPayController_getStrategy, _TransactionPayController_removeTransactionData, _TransactionPayController_updateTransactionData, _TransactionPayController_registerActionHandlers;
13
13
  import { BaseController } from "@metamask/base-controller";
14
14
  import $lodash from "lodash";
15
15
  const { noop } = $lodash;
16
16
  import { updatePaymentToken } from "./actions/update-payment-token.mjs";
17
- import { CONTROLLER_NAME, isTransactionPayStrategy, TransactionPayStrategy } from "./constants.mjs";
17
+ import { CONTROLLER_NAME, TransactionPayStrategy } from "./constants.mjs";
18
18
  import { QuoteRefresher } from "./helpers/QuoteRefresher.mjs";
19
- import { getStrategyOrder } from "./utils/feature-flags.mjs";
20
19
  import { updateQuotes } from "./utils/quotes.mjs";
21
20
  import { updateSourceAmounts } from "./utils/source-amounts.mjs";
22
21
  import { pollTransactionChanges } from "./utils/transaction.mjs";
@@ -32,7 +31,7 @@ const getDefaultState = () => ({
32
31
  transactionData: {},
33
32
  });
34
33
  export class TransactionPayController extends BaseController {
35
- constructor({ getDelegationTransaction, getStrategy, getStrategies, messenger, state, }) {
34
+ constructor({ getDelegationTransaction, getStrategy, messenger, state, }) {
36
35
  super({
37
36
  name: CONTROLLER_NAME,
38
37
  metadata: stateMetadata,
@@ -42,15 +41,12 @@ export class TransactionPayController extends BaseController {
42
41
  _TransactionPayController_instances.add(this);
43
42
  _TransactionPayController_getDelegationTransaction.set(this, void 0);
44
43
  _TransactionPayController_getStrategy.set(this, void 0);
45
- _TransactionPayController_getStrategies.set(this, void 0);
46
44
  __classPrivateFieldSet(this, _TransactionPayController_getDelegationTransaction, getDelegationTransaction, "f");
47
45
  __classPrivateFieldSet(this, _TransactionPayController_getStrategy, getStrategy, "f");
48
- __classPrivateFieldSet(this, _TransactionPayController_getStrategies, getStrategies, "f");
49
46
  __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_registerActionHandlers).call(this);
50
47
  pollTransactionChanges(messenger, __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_updateTransactionData).bind(this), __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_removeTransactionData).bind(this));
51
48
  // eslint-disable-next-line no-new
52
49
  new QuoteRefresher({
53
- getStrategies: __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_getStrategiesWithFallback).bind(this),
54
50
  messenger,
55
51
  updateTransactionData: __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_updateTransactionData).bind(this),
56
52
  });
@@ -73,7 +69,7 @@ export class TransactionPayController extends BaseController {
73
69
  });
74
70
  }
75
71
  }
76
- _TransactionPayController_getDelegationTransaction = new WeakMap(), _TransactionPayController_getStrategy = new WeakMap(), _TransactionPayController_getStrategies = new WeakMap(), _TransactionPayController_instances = new WeakSet(), _TransactionPayController_removeTransactionData = function _TransactionPayController_removeTransactionData(transactionId) {
72
+ _TransactionPayController_getDelegationTransaction = new WeakMap(), _TransactionPayController_getStrategy = new WeakMap(), _TransactionPayController_instances = new WeakSet(), _TransactionPayController_removeTransactionData = function _TransactionPayController_removeTransactionData(transactionId) {
77
73
  this.update((state) => {
78
74
  delete state.transactionData[transactionId];
79
75
  });
@@ -110,7 +106,6 @@ _TransactionPayController_getDelegationTransaction = new WeakMap(), _Transaction
110
106
  });
111
107
  if (shouldUpdateQuotes) {
112
108
  updateQuotes({
113
- getStrategies: __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_getStrategiesWithFallback).bind(this),
114
109
  messenger: this.messenger,
115
110
  transactionData: this.state.transactionData[transactionId],
116
111
  transactionId,
@@ -119,15 +114,9 @@ _TransactionPayController_getDelegationTransaction = new WeakMap(), _Transaction
119
114
  }
120
115
  }, _TransactionPayController_registerActionHandlers = function _TransactionPayController_registerActionHandlers() {
121
116
  this.messenger.registerActionHandler('TransactionPayController:getDelegationTransaction', __classPrivateFieldGet(this, _TransactionPayController_getDelegationTransaction, "f").bind(this));
122
- this.messenger.registerActionHandler('TransactionPayController:getStrategy', (transaction) => __classPrivateFieldGet(this, _TransactionPayController_instances, "m", _TransactionPayController_getStrategiesWithFallback).call(this, transaction)[0]);
117
+ this.messenger.registerActionHandler('TransactionPayController:getStrategy', __classPrivateFieldGet(this, _TransactionPayController_getStrategy, "f") ??
118
+ (() => TransactionPayStrategy.Relay));
123
119
  this.messenger.registerActionHandler('TransactionPayController:setTransactionConfig', this.setTransactionConfig.bind(this));
124
120
  this.messenger.registerActionHandler('TransactionPayController:updatePaymentToken', this.updatePaymentToken.bind(this));
125
- }, _TransactionPayController_getStrategiesWithFallback = function _TransactionPayController_getStrategiesWithFallback(transaction) {
126
- const strategyCandidates = __classPrivateFieldGet(this, _TransactionPayController_getStrategies, "f")?.call(this, transaction) ??
127
- (__classPrivateFieldGet(this, _TransactionPayController_getStrategy, "f") ? [__classPrivateFieldGet(this, _TransactionPayController_getStrategy, "f").call(this, transaction)] : []);
128
- const validStrategies = strategyCandidates.filter((strategy) => isTransactionPayStrategy(strategy));
129
- return validStrategies.length
130
- ? validStrategies
131
- : getStrategyOrder(this.messenger);
132
121
  };
133
122
  //# sourceMappingURL=TransactionPayController.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionPayController.mjs","sourceRoot":"","sources":["../src/TransactionPayController.ts"],"names":[],"mappings":"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","sourcesContent":["import type { StateMetadata } from '@metamask/base-controller';\nimport { BaseController } from '@metamask/base-controller';\nimport type { TransactionMeta } from '@metamask/transaction-controller';\nimport type { Draft } from 'immer';\nimport { noop } from 'lodash';\n\nimport { updatePaymentToken } from './actions/update-payment-token';\nimport {\n CONTROLLER_NAME,\n isTransactionPayStrategy,\n TransactionPayStrategy,\n} from './constants';\nimport { QuoteRefresher } from './helpers/QuoteRefresher';\nimport type {\n GetDelegationTransactionCallback,\n TransactionConfigCallback,\n TransactionData,\n TransactionPayControllerMessenger,\n TransactionPayControllerOptions,\n TransactionPayControllerState,\n UpdatePaymentTokenRequest,\n} from './types';\nimport { getStrategyOrder } from './utils/feature-flags';\nimport { updateQuotes } from './utils/quotes';\nimport { updateSourceAmounts } from './utils/source-amounts';\nimport { pollTransactionChanges } from './utils/transaction';\n\nconst stateMetadata: StateMetadata<TransactionPayControllerState> = {\n transactionData: {\n includeInDebugSnapshot: false,\n includeInStateLogs: true,\n persist: false,\n usedInUi: true,\n },\n};\n\nconst getDefaultState = (): TransactionPayControllerState => ({\n transactionData: {},\n});\n\nexport class TransactionPayController extends BaseController<\n typeof CONTROLLER_NAME,\n TransactionPayControllerState,\n TransactionPayControllerMessenger\n> {\n readonly #getDelegationTransaction: GetDelegationTransactionCallback;\n\n readonly #getStrategy?: (\n transaction: TransactionMeta,\n ) => TransactionPayStrategy;\n\n readonly #getStrategies?: (\n transaction: TransactionMeta,\n ) => TransactionPayStrategy[];\n\n constructor({\n getDelegationTransaction,\n getStrategy,\n getStrategies,\n messenger,\n state,\n }: TransactionPayControllerOptions) {\n super({\n name: CONTROLLER_NAME,\n metadata: stateMetadata,\n messenger,\n state: { ...getDefaultState(), ...state },\n });\n\n this.#getDelegationTransaction = getDelegationTransaction;\n this.#getStrategy = getStrategy;\n this.#getStrategies = getStrategies;\n\n this.#registerActionHandlers();\n\n pollTransactionChanges(\n messenger,\n this.#updateTransactionData.bind(this),\n this.#removeTransactionData.bind(this),\n );\n\n // eslint-disable-next-line no-new\n new QuoteRefresher({\n getStrategies: this.#getStrategiesWithFallback.bind(this),\n messenger,\n updateTransactionData: this.#updateTransactionData.bind(this),\n });\n }\n\n setTransactionConfig(\n transactionId: string,\n callback: TransactionConfigCallback,\n ): void {\n this.#updateTransactionData(transactionId, (transactionData) => {\n const config = {\n isMaxAmount: transactionData.isMaxAmount,\n isPostQuote: transactionData.isPostQuote,\n };\n\n callback(config);\n\n transactionData.isMaxAmount = config.isMaxAmount;\n transactionData.isPostQuote = config.isPostQuote;\n });\n }\n\n updatePaymentToken(request: UpdatePaymentTokenRequest): void {\n updatePaymentToken(request, {\n messenger: this.messenger,\n updateTransactionData: this.#updateTransactionData.bind(this),\n });\n }\n\n #removeTransactionData(transactionId: string): void {\n this.update((state) => {\n delete state.transactionData[transactionId];\n });\n }\n\n #updateTransactionData(\n transactionId: string,\n fn: (transactionData: Draft<TransactionData>) => void,\n ): void {\n let shouldUpdateQuotes = false;\n\n this.update((state) => {\n const { transactionData } = state;\n let current = transactionData[transactionId];\n const originalPaymentToken = current?.paymentToken;\n const originalTokens = current?.tokens;\n const originalIsMaxAmount = current?.isMaxAmount;\n const originalIsPostQuote = current?.isPostQuote;\n\n if (!current) {\n transactionData[transactionId] = {\n isLoading: false,\n tokens: [],\n };\n\n current = transactionData[transactionId];\n }\n\n fn(current);\n\n const isPaymentTokenUpdated =\n current.paymentToken?.address?.toLowerCase() !==\n originalPaymentToken?.address?.toLowerCase() ||\n current.paymentToken?.chainId !== originalPaymentToken?.chainId;\n\n const isTokensUpdated = current.tokens !== originalTokens;\n const isIsMaxUpdated = current.isMaxAmount !== originalIsMaxAmount;\n const isPostQuoteUpdated = current.isPostQuote !== originalIsPostQuote;\n\n if (\n isPaymentTokenUpdated ||\n isIsMaxUpdated ||\n isTokensUpdated ||\n isPostQuoteUpdated\n ) {\n updateSourceAmounts(transactionId, current as never, this.messenger);\n\n shouldUpdateQuotes = true;\n }\n });\n\n if (shouldUpdateQuotes) {\n updateQuotes({\n getStrategies: this.#getStrategiesWithFallback.bind(this),\n messenger: this.messenger,\n transactionData: this.state.transactionData[transactionId],\n transactionId,\n updateTransactionData: this.#updateTransactionData.bind(this),\n }).catch(noop);\n }\n }\n\n #registerActionHandlers(): void {\n this.messenger.registerActionHandler(\n 'TransactionPayController:getDelegationTransaction',\n this.#getDelegationTransaction.bind(this),\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:getStrategy',\n (transaction: TransactionMeta): TransactionPayStrategy =>\n this.#getStrategiesWithFallback(transaction)[0],\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:setTransactionConfig',\n this.setTransactionConfig.bind(this),\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:updatePaymentToken',\n this.updatePaymentToken.bind(this),\n );\n }\n\n #getStrategiesWithFallback(\n transaction: TransactionMeta,\n ): TransactionPayStrategy[] {\n const strategyCandidates: unknown[] =\n this.#getStrategies?.(transaction) ??\n (this.#getStrategy ? [this.#getStrategy(transaction)] : []);\n\n const validStrategies = strategyCandidates.filter(\n (strategy): strategy is TransactionPayStrategy =>\n isTransactionPayStrategy(strategy),\n );\n\n return validStrategies.length\n ? validStrategies\n : getStrategyOrder(this.messenger);\n }\n}\n"]}
1
+ {"version":3,"file":"TransactionPayController.mjs","sourceRoot":"","sources":["../src/TransactionPayController.ts"],"names":[],"mappings":"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","sourcesContent":["import type { StateMetadata } from '@metamask/base-controller';\nimport { BaseController } from '@metamask/base-controller';\nimport type { TransactionMeta } from '@metamask/transaction-controller';\nimport type { Draft } from 'immer';\nimport { noop } from 'lodash';\n\nimport { updatePaymentToken } from './actions/update-payment-token';\nimport { CONTROLLER_NAME, TransactionPayStrategy } from './constants';\nimport { QuoteRefresher } from './helpers/QuoteRefresher';\nimport type {\n GetDelegationTransactionCallback,\n TransactionConfigCallback,\n TransactionData,\n TransactionPayControllerMessenger,\n TransactionPayControllerOptions,\n TransactionPayControllerState,\n UpdatePaymentTokenRequest,\n} from './types';\nimport { updateQuotes } from './utils/quotes';\nimport { updateSourceAmounts } from './utils/source-amounts';\nimport { pollTransactionChanges } from './utils/transaction';\n\nconst stateMetadata: StateMetadata<TransactionPayControllerState> = {\n transactionData: {\n includeInDebugSnapshot: false,\n includeInStateLogs: true,\n persist: false,\n usedInUi: true,\n },\n};\n\nconst getDefaultState = (): TransactionPayControllerState => ({\n transactionData: {},\n});\n\nexport class TransactionPayController extends BaseController<\n typeof CONTROLLER_NAME,\n TransactionPayControllerState,\n TransactionPayControllerMessenger\n> {\n readonly #getDelegationTransaction: GetDelegationTransactionCallback;\n\n readonly #getStrategy?: (\n transaction: TransactionMeta,\n ) => TransactionPayStrategy;\n\n constructor({\n getDelegationTransaction,\n getStrategy,\n messenger,\n state,\n }: TransactionPayControllerOptions) {\n super({\n name: CONTROLLER_NAME,\n metadata: stateMetadata,\n messenger,\n state: { ...getDefaultState(), ...state },\n });\n\n this.#getDelegationTransaction = getDelegationTransaction;\n this.#getStrategy = getStrategy;\n\n this.#registerActionHandlers();\n\n pollTransactionChanges(\n messenger,\n this.#updateTransactionData.bind(this),\n this.#removeTransactionData.bind(this),\n );\n\n // eslint-disable-next-line no-new\n new QuoteRefresher({\n messenger,\n updateTransactionData: this.#updateTransactionData.bind(this),\n });\n }\n\n setTransactionConfig(\n transactionId: string,\n callback: TransactionConfigCallback,\n ): void {\n this.#updateTransactionData(transactionId, (transactionData) => {\n const config = {\n isMaxAmount: transactionData.isMaxAmount,\n isPostQuote: transactionData.isPostQuote,\n };\n\n callback(config);\n\n transactionData.isMaxAmount = config.isMaxAmount;\n transactionData.isPostQuote = config.isPostQuote;\n });\n }\n\n updatePaymentToken(request: UpdatePaymentTokenRequest): void {\n updatePaymentToken(request, {\n messenger: this.messenger,\n updateTransactionData: this.#updateTransactionData.bind(this),\n });\n }\n\n #removeTransactionData(transactionId: string): void {\n this.update((state) => {\n delete state.transactionData[transactionId];\n });\n }\n\n #updateTransactionData(\n transactionId: string,\n fn: (transactionData: Draft<TransactionData>) => void,\n ): void {\n let shouldUpdateQuotes = false;\n\n this.update((state) => {\n const { transactionData } = state;\n let current = transactionData[transactionId];\n const originalPaymentToken = current?.paymentToken;\n const originalTokens = current?.tokens;\n const originalIsMaxAmount = current?.isMaxAmount;\n const originalIsPostQuote = current?.isPostQuote;\n\n if (!current) {\n transactionData[transactionId] = {\n isLoading: false,\n tokens: [],\n };\n\n current = transactionData[transactionId];\n }\n\n fn(current);\n\n const isPaymentTokenUpdated =\n current.paymentToken?.address?.toLowerCase() !==\n originalPaymentToken?.address?.toLowerCase() ||\n current.paymentToken?.chainId !== originalPaymentToken?.chainId;\n\n const isTokensUpdated = current.tokens !== originalTokens;\n const isIsMaxUpdated = current.isMaxAmount !== originalIsMaxAmount;\n const isPostQuoteUpdated = current.isPostQuote !== originalIsPostQuote;\n\n if (\n isPaymentTokenUpdated ||\n isIsMaxUpdated ||\n isTokensUpdated ||\n isPostQuoteUpdated\n ) {\n updateSourceAmounts(transactionId, current as never, this.messenger);\n\n shouldUpdateQuotes = true;\n }\n });\n\n if (shouldUpdateQuotes) {\n updateQuotes({\n messenger: this.messenger,\n transactionData: this.state.transactionData[transactionId],\n transactionId,\n updateTransactionData: this.#updateTransactionData.bind(this),\n }).catch(noop);\n }\n }\n\n #registerActionHandlers(): void {\n this.messenger.registerActionHandler(\n 'TransactionPayController:getDelegationTransaction',\n this.#getDelegationTransaction.bind(this),\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:getStrategy',\n this.#getStrategy ??\n ((): TransactionPayStrategy => TransactionPayStrategy.Relay),\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:setTransactionConfig',\n this.setTransactionConfig.bind(this),\n );\n\n this.messenger.registerActionHandler(\n 'TransactionPayController:updatePaymentToken',\n this.updatePaymentToken.bind(this),\n );\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTransactionPayStrategy = exports.TransactionPayStrategy = exports.STABLECOINS = exports.POLYGON_USDCE_ADDRESS = exports.ARBITRUM_USDC_ADDRESS = exports.NATIVE_TOKEN_ADDRESS = exports.CHAIN_ID_HYPERCORE = exports.CHAIN_ID_POLYGON = exports.CHAIN_ID_ARBITRUM = exports.CONTROLLER_NAME = void 0;
3
+ exports.TransactionPayStrategy = exports.STABLECOINS = exports.POLYGON_USDCE_ADDRESS = exports.ARBITRUM_USDC_ADDRESS = exports.NATIVE_TOKEN_ADDRESS = exports.CHAIN_ID_HYPERCORE = exports.CHAIN_ID_POLYGON = exports.CHAIN_ID_ARBITRUM = exports.CONTROLLER_NAME = void 0;
4
4
  exports.CONTROLLER_NAME = 'TransactionPayController';
5
5
  exports.CHAIN_ID_ARBITRUM = '0xa4b1';
6
6
  exports.CHAIN_ID_POLYGON = '0x89';
@@ -31,15 +31,4 @@ var TransactionPayStrategy;
31
31
  TransactionPayStrategy["Relay"] = "relay";
32
32
  TransactionPayStrategy["Test"] = "test";
33
33
  })(TransactionPayStrategy || (exports.TransactionPayStrategy = TransactionPayStrategy = {}));
34
- const VALID_STRATEGIES = new Set(Object.values(TransactionPayStrategy));
35
- /**
36
- * Checks if a value is a valid transaction pay strategy.
37
- *
38
- * @param strategy - Candidate strategy value.
39
- * @returns True if the value is a valid strategy.
40
- */
41
- function isTransactionPayStrategy(strategy) {
42
- return VALID_STRATEGIES.has(strategy);
43
- }
44
- exports.isTransactionPayStrategy = isTransactionPayStrategy;
45
34
  //# sourceMappingURL=constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.cjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAG,0BAA0B,CAAC;AAC7C,QAAA,iBAAiB,GAAG,QAAe,CAAC;AACpC,QAAA,gBAAgB,GAAG,MAAa,CAAC;AACjC,QAAA,kBAAkB,GAAG,OAAc,CAAC;AAEpC,QAAA,oBAAoB,GAC/B,4CAAmD,CAAC;AAEzC,QAAA,qBAAqB,GAChC,4CAAmD,CAAC;AAEzC,QAAA,qBAAqB,GAChC,4CAAmD,CAAC;AAEzC,QAAA,WAAW,GAAuB;IAC7C,UAAU;IACV,KAAK,EAAE;QACL,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;KACtD;IACD,CAAC,yBAAiB,CAAC,EAAE,CAAC,6BAAqB,CAAC,WAAW,EAAS,CAAC;IACjE,QAAQ;IACR,QAAQ,EAAE;QACR,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;KACtD;IACD,CAAC,wBAAgB,CAAC,EAAE,CAAC,6BAAqB,CAAC,WAAW,EAAS,CAAC;IAChE,CAAC,0BAAkB,CAAC,EAAE,CAAC,oCAAoC,CAAC,EAAE,OAAO;CACtE,CAAC;AAEF,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,yCAAe,CAAA;IACf,uCAAa,CAAA;AACf,CAAC,EAJW,sBAAsB,sCAAtB,sBAAsB,QAIjC;AAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAExE;;;;;GAKG;AACH,SAAgB,wBAAwB,CACtC,QAAiB;IAEjB,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAkC,CAAC,CAAC;AAClE,CAAC;AAJD,4DAIC","sourcesContent":["import type { Hex } from '@metamask/utils';\n\nexport const CONTROLLER_NAME = 'TransactionPayController';\nexport const CHAIN_ID_ARBITRUM = '0xa4b1' as Hex;\nexport const CHAIN_ID_POLYGON = '0x89' as Hex;\nexport const CHAIN_ID_HYPERCORE = '0x539' as Hex;\n\nexport const NATIVE_TOKEN_ADDRESS =\n '0x0000000000000000000000000000000000000000' as Hex;\n\nexport const ARBITRUM_USDC_ADDRESS =\n '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' as Hex;\n\nexport const POLYGON_USDCE_ADDRESS =\n '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174' as Hex;\n\nexport const STABLECOINS: Record<Hex, Hex[]> = {\n // Mainnet\n '0x1': [\n '0xaca92e438df0b2401ff60da7e4337b687a2435da', // MUSD\n '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC\n '0xdac17f958d2ee523a2206206994597c13d831ec7', // USDT\n ],\n [CHAIN_ID_ARBITRUM]: [ARBITRUM_USDC_ADDRESS.toLowerCase() as Hex],\n // Linea\n '0xe708': [\n '0xaca92e438df0b2401ff60da7e4337b687a2435da', // MUSD\n '0x176211869ca2b568f2a7d4ee941e073a821ee1ff', // USDC\n '0xa219439258ca9da29e9cc4ce5596924745e12b93', // USDT\n ],\n [CHAIN_ID_POLYGON]: [POLYGON_USDCE_ADDRESS.toLowerCase() as Hex],\n [CHAIN_ID_HYPERCORE]: ['0x00000000000000000000000000000000'], // USDC\n};\n\nexport enum TransactionPayStrategy {\n Bridge = 'bridge',\n Relay = 'relay',\n Test = 'test',\n}\n\nconst VALID_STRATEGIES = new Set(Object.values(TransactionPayStrategy));\n\n/**\n * Checks if a value is a valid transaction pay strategy.\n *\n * @param strategy - Candidate strategy value.\n * @returns True if the value is a valid strategy.\n */\nexport function isTransactionPayStrategy(\n strategy: unknown,\n): strategy is TransactionPayStrategy {\n return VALID_STRATEGIES.has(strategy as TransactionPayStrategy);\n}\n"]}
1
+ {"version":3,"file":"constants.cjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAG,0BAA0B,CAAC;AAC7C,QAAA,iBAAiB,GAAG,QAAe,CAAC;AACpC,QAAA,gBAAgB,GAAG,MAAa,CAAC;AACjC,QAAA,kBAAkB,GAAG,OAAc,CAAC;AAEpC,QAAA,oBAAoB,GAC/B,4CAAmD,CAAC;AAEzC,QAAA,qBAAqB,GAChC,4CAAmD,CAAC;AAEzC,QAAA,qBAAqB,GAChC,4CAAmD,CAAC;AAEzC,QAAA,WAAW,GAAuB;IAC7C,UAAU;IACV,KAAK,EAAE;QACL,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;KACtD;IACD,CAAC,yBAAiB,CAAC,EAAE,CAAC,6BAAqB,CAAC,WAAW,EAAS,CAAC;IACjE,QAAQ;IACR,QAAQ,EAAE;QACR,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;KACtD;IACD,CAAC,wBAAgB,CAAC,EAAE,CAAC,6BAAqB,CAAC,WAAW,EAAS,CAAC;IAChE,CAAC,0BAAkB,CAAC,EAAE,CAAC,oCAAoC,CAAC,EAAE,OAAO;CACtE,CAAC;AAEF,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,yCAAe,CAAA;IACf,uCAAa,CAAA;AACf,CAAC,EAJW,sBAAsB,sCAAtB,sBAAsB,QAIjC","sourcesContent":["import type { Hex } from '@metamask/utils';\n\nexport const CONTROLLER_NAME = 'TransactionPayController';\nexport const CHAIN_ID_ARBITRUM = '0xa4b1' as Hex;\nexport const CHAIN_ID_POLYGON = '0x89' as Hex;\nexport const CHAIN_ID_HYPERCORE = '0x539' as Hex;\n\nexport const NATIVE_TOKEN_ADDRESS =\n '0x0000000000000000000000000000000000000000' as Hex;\n\nexport const ARBITRUM_USDC_ADDRESS =\n '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' as Hex;\n\nexport const POLYGON_USDCE_ADDRESS =\n '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174' as Hex;\n\nexport const STABLECOINS: Record<Hex, Hex[]> = {\n // Mainnet\n '0x1': [\n '0xaca92e438df0b2401ff60da7e4337b687a2435da', // MUSD\n '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC\n '0xdac17f958d2ee523a2206206994597c13d831ec7', // USDT\n ],\n [CHAIN_ID_ARBITRUM]: [ARBITRUM_USDC_ADDRESS.toLowerCase() as Hex],\n // Linea\n '0xe708': [\n '0xaca92e438df0b2401ff60da7e4337b687a2435da', // MUSD\n '0x176211869ca2b568f2a7d4ee941e073a821ee1ff', // USDC\n '0xa219439258ca9da29e9cc4ce5596924745e12b93', // USDT\n ],\n [CHAIN_ID_POLYGON]: [POLYGON_USDCE_ADDRESS.toLowerCase() as Hex],\n [CHAIN_ID_HYPERCORE]: ['0x00000000000000000000000000000000'], // USDC\n};\n\nexport enum TransactionPayStrategy {\n Bridge = 'bridge',\n Relay = 'relay',\n Test = 'test',\n}\n"]}
@@ -12,11 +12,4 @@ export declare enum TransactionPayStrategy {
12
12
  Relay = "relay",
13
13
  Test = "test"
14
14
  }
15
- /**
16
- * Checks if a value is a valid transaction pay strategy.
17
- *
18
- * @param strategy - Candidate strategy value.
19
- * @returns True if the value is a valid strategy.
20
- */
21
- export declare function isTransactionPayStrategy(strategy: unknown): strategy is TransactionPayStrategy;
22
15
  //# sourceMappingURL=constants.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.cts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAE3C,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,iBAAiB,eAAkB,CAAC;AACjD,eAAO,MAAM,gBAAgB,eAAgB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,eAAiB,CAAC;AAEjD,eAAO,MAAM,oBAAoB,eACoB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,eACmB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,eACmB,CAAC;AAEtD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAgB1C,CAAC;AAEF,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAID;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,GAChB,QAAQ,IAAI,sBAAsB,CAEpC"}
1
+ {"version":3,"file":"constants.d.cts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAE3C,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,iBAAiB,eAAkB,CAAC;AACjD,eAAO,MAAM,gBAAgB,eAAgB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,eAAiB,CAAC;AAEjD,eAAO,MAAM,oBAAoB,eACoB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,eACmB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,eACmB,CAAC;AAEtD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAgB1C,CAAC;AAEF,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;CACd"}
@@ -12,11 +12,4 @@ export declare enum TransactionPayStrategy {
12
12
  Relay = "relay",
13
13
  Test = "test"
14
14
  }
15
- /**
16
- * Checks if a value is a valid transaction pay strategy.
17
- *
18
- * @param strategy - Candidate strategy value.
19
- * @returns True if the value is a valid strategy.
20
- */
21
- export declare function isTransactionPayStrategy(strategy: unknown): strategy is TransactionPayStrategy;
22
15
  //# sourceMappingURL=constants.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAE3C,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,iBAAiB,eAAkB,CAAC;AACjD,eAAO,MAAM,gBAAgB,eAAgB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,eAAiB,CAAC;AAEjD,eAAO,MAAM,oBAAoB,eACoB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,eACmB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,eACmB,CAAC;AAEtD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAgB1C,CAAC;AAEF,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAID;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,GAChB,QAAQ,IAAI,sBAAsB,CAEpC"}
1
+ {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAE3C,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,iBAAiB,eAAkB,CAAC;AACjD,eAAO,MAAM,gBAAgB,eAAgB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,eAAiB,CAAC;AAEjD,eAAO,MAAM,oBAAoB,eACoB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,eACmB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,eACmB,CAAC;AAEtD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAgB1C,CAAC;AAEF,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;CACd"}
@@ -28,14 +28,4 @@ export var TransactionPayStrategy;
28
28
  TransactionPayStrategy["Relay"] = "relay";
29
29
  TransactionPayStrategy["Test"] = "test";
30
30
  })(TransactionPayStrategy || (TransactionPayStrategy = {}));
31
- const VALID_STRATEGIES = new Set(Object.values(TransactionPayStrategy));
32
- /**
33
- * Checks if a value is a valid transaction pay strategy.
34
- *
35
- * @param strategy - Candidate strategy value.
36
- * @returns True if the value is a valid strategy.
37
- */
38
- export function isTransactionPayStrategy(strategy) {
39
- return VALID_STRATEGIES.has(strategy);
40
- }
41
31
  //# sourceMappingURL=constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAe,CAAC;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAa,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAc,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAC/B,4CAAmD,CAAC;AAEtD,MAAM,CAAC,MAAM,qBAAqB,GAChC,4CAAmD,CAAC;AAEtD,MAAM,CAAC,MAAM,qBAAqB,GAChC,4CAAmD,CAAC;AAEtD,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC7C,UAAU;IACV,KAAK,EAAE;QACL,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;KACtD;IACD,CAAC,iBAAiB,CAAC,EAAE,CAAC,qBAAqB,CAAC,WAAW,EAAS,CAAC;IACjE,QAAQ;IACR,QAAQ,EAAE;QACR,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;KACtD;IACD,CAAC,gBAAgB,CAAC,EAAE,CAAC,qBAAqB,CAAC,WAAW,EAAS,CAAC;IAChE,CAAC,kBAAkB,CAAC,EAAE,CAAC,oCAAoC,CAAC,EAAE,OAAO;CACtE,CAAC;AAEF,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,yCAAe,CAAA;IACf,uCAAa,CAAA;AACf,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC;AAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAiB;IAEjB,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAkC,CAAC,CAAC;AAClE,CAAC","sourcesContent":["import type { Hex } from '@metamask/utils';\n\nexport const CONTROLLER_NAME = 'TransactionPayController';\nexport const CHAIN_ID_ARBITRUM = '0xa4b1' as Hex;\nexport const CHAIN_ID_POLYGON = '0x89' as Hex;\nexport const CHAIN_ID_HYPERCORE = '0x539' as Hex;\n\nexport const NATIVE_TOKEN_ADDRESS =\n '0x0000000000000000000000000000000000000000' as Hex;\n\nexport const ARBITRUM_USDC_ADDRESS =\n '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' as Hex;\n\nexport const POLYGON_USDCE_ADDRESS =\n '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174' as Hex;\n\nexport const STABLECOINS: Record<Hex, Hex[]> = {\n // Mainnet\n '0x1': [\n '0xaca92e438df0b2401ff60da7e4337b687a2435da', // MUSD\n '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC\n '0xdac17f958d2ee523a2206206994597c13d831ec7', // USDT\n ],\n [CHAIN_ID_ARBITRUM]: [ARBITRUM_USDC_ADDRESS.toLowerCase() as Hex],\n // Linea\n '0xe708': [\n '0xaca92e438df0b2401ff60da7e4337b687a2435da', // MUSD\n '0x176211869ca2b568f2a7d4ee941e073a821ee1ff', // USDC\n '0xa219439258ca9da29e9cc4ce5596924745e12b93', // USDT\n ],\n [CHAIN_ID_POLYGON]: [POLYGON_USDCE_ADDRESS.toLowerCase() as Hex],\n [CHAIN_ID_HYPERCORE]: ['0x00000000000000000000000000000000'], // USDC\n};\n\nexport enum TransactionPayStrategy {\n Bridge = 'bridge',\n Relay = 'relay',\n Test = 'test',\n}\n\nconst VALID_STRATEGIES = new Set(Object.values(TransactionPayStrategy));\n\n/**\n * Checks if a value is a valid transaction pay strategy.\n *\n * @param strategy - Candidate strategy value.\n * @returns True if the value is a valid strategy.\n */\nexport function isTransactionPayStrategy(\n strategy: unknown,\n): strategy is TransactionPayStrategy {\n return VALID_STRATEGIES.has(strategy as TransactionPayStrategy);\n}\n"]}
1
+ {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAe,CAAC;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAa,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAc,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAC/B,4CAAmD,CAAC;AAEtD,MAAM,CAAC,MAAM,qBAAqB,GAChC,4CAAmD,CAAC;AAEtD,MAAM,CAAC,MAAM,qBAAqB,GAChC,4CAAmD,CAAC;AAEtD,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC7C,UAAU;IACV,KAAK,EAAE;QACL,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;KACtD;IACD,CAAC,iBAAiB,CAAC,EAAE,CAAC,qBAAqB,CAAC,WAAW,EAAS,CAAC;IACjE,QAAQ;IACR,QAAQ,EAAE;QACR,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;KACtD;IACD,CAAC,gBAAgB,CAAC,EAAE,CAAC,qBAAqB,CAAC,WAAW,EAAS,CAAC;IAChE,CAAC,kBAAkB,CAAC,EAAE,CAAC,oCAAoC,CAAC,EAAE,OAAO;CACtE,CAAC;AAEF,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,yCAAe,CAAA;IACf,uCAAa,CAAA;AACf,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC","sourcesContent":["import type { Hex } from '@metamask/utils';\n\nexport const CONTROLLER_NAME = 'TransactionPayController';\nexport const CHAIN_ID_ARBITRUM = '0xa4b1' as Hex;\nexport const CHAIN_ID_POLYGON = '0x89' as Hex;\nexport const CHAIN_ID_HYPERCORE = '0x539' as Hex;\n\nexport const NATIVE_TOKEN_ADDRESS =\n '0x0000000000000000000000000000000000000000' as Hex;\n\nexport const ARBITRUM_USDC_ADDRESS =\n '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' as Hex;\n\nexport const POLYGON_USDCE_ADDRESS =\n '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174' as Hex;\n\nexport const STABLECOINS: Record<Hex, Hex[]> = {\n // Mainnet\n '0x1': [\n '0xaca92e438df0b2401ff60da7e4337b687a2435da', // MUSD\n '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC\n '0xdac17f958d2ee523a2206206994597c13d831ec7', // USDT\n ],\n [CHAIN_ID_ARBITRUM]: [ARBITRUM_USDC_ADDRESS.toLowerCase() as Hex],\n // Linea\n '0xe708': [\n '0xaca92e438df0b2401ff60da7e4337b687a2435da', // MUSD\n '0x176211869ca2b568f2a7d4ee941e073a821ee1ff', // USDC\n '0xa219439258ca9da29e9cc4ce5596924745e12b93', // USDT\n ],\n [CHAIN_ID_POLYGON]: [POLYGON_USDCE_ADDRESS.toLowerCase() as Hex],\n [CHAIN_ID_HYPERCORE]: ['0x00000000000000000000000000000000'], // USDC\n};\n\nexport enum TransactionPayStrategy {\n Bridge = 'bridge',\n Relay = 'relay',\n Test = 'test',\n}\n"]}
@@ -10,26 +10,23 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
11
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
12
  };
13
- var _QuoteRefresher_instances, _QuoteRefresher_isRunning, _QuoteRefresher_isUpdating, _QuoteRefresher_messenger, _QuoteRefresher_timeoutId, _QuoteRefresher_getStrategies, _QuoteRefresher_updateTransactionData, _QuoteRefresher_start, _QuoteRefresher_stop, _QuoteRefresher_onInterval, _QuoteRefresher_queueNextInterval, _QuoteRefresher_onStateChange;
13
+ var _QuoteRefresher_instances, _QuoteRefresher_isRunning, _QuoteRefresher_isUpdating, _QuoteRefresher_messenger, _QuoteRefresher_timeoutId, _QuoteRefresher_updateTransactionData, _QuoteRefresher_start, _QuoteRefresher_stop, _QuoteRefresher_onInterval, _QuoteRefresher_queueNextInterval, _QuoteRefresher_onStateChange;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.QuoteRefresher = void 0;
16
16
  const utils_1 = require("@metamask/utils");
17
17
  const lodash_1 = require("lodash");
18
- const constants_1 = require("../constants.cjs");
19
18
  const logger_1 = require("../logger.cjs");
20
19
  const quotes_1 = require("../utils/quotes.cjs");
21
20
  const CHECK_INTERVAL = 1000; // 1 Second
22
21
  const log = (0, utils_1.createModuleLogger)(logger_1.projectLogger, 'quote-refresh');
23
22
  class QuoteRefresher {
24
- constructor({ getStrategies, messenger, updateTransactionData, }) {
23
+ constructor({ messenger, updateTransactionData, }) {
25
24
  _QuoteRefresher_instances.add(this);
26
25
  _QuoteRefresher_isRunning.set(this, void 0);
27
26
  _QuoteRefresher_isUpdating.set(this, void 0);
28
27
  _QuoteRefresher_messenger.set(this, void 0);
29
28
  _QuoteRefresher_timeoutId.set(this, void 0);
30
- _QuoteRefresher_getStrategies.set(this, void 0);
31
29
  _QuoteRefresher_updateTransactionData.set(this, void 0);
32
- __classPrivateFieldSet(this, _QuoteRefresher_getStrategies, getStrategies, "f");
33
30
  __classPrivateFieldSet(this, _QuoteRefresher_messenger, messenger, "f");
34
31
  __classPrivateFieldSet(this, _QuoteRefresher_isRunning, false, "f");
35
32
  __classPrivateFieldSet(this, _QuoteRefresher_isUpdating, false, "f");
@@ -38,7 +35,7 @@ class QuoteRefresher {
38
35
  }
39
36
  }
40
37
  exports.QuoteRefresher = QuoteRefresher;
41
- _QuoteRefresher_isRunning = new WeakMap(), _QuoteRefresher_isUpdating = new WeakMap(), _QuoteRefresher_messenger = new WeakMap(), _QuoteRefresher_timeoutId = new WeakMap(), _QuoteRefresher_getStrategies = new WeakMap(), _QuoteRefresher_updateTransactionData = new WeakMap(), _QuoteRefresher_instances = new WeakSet(), _QuoteRefresher_start = function _QuoteRefresher_start() {
38
+ _QuoteRefresher_isRunning = new WeakMap(), _QuoteRefresher_isUpdating = new WeakMap(), _QuoteRefresher_messenger = new WeakMap(), _QuoteRefresher_timeoutId = new WeakMap(), _QuoteRefresher_updateTransactionData = new WeakMap(), _QuoteRefresher_instances = new WeakSet(), _QuoteRefresher_start = function _QuoteRefresher_start() {
42
39
  __classPrivateFieldSet(this, _QuoteRefresher_isRunning, true, "f");
43
40
  log('Started');
44
41
  if (__classPrivateFieldGet(this, _QuoteRefresher_isUpdating, "f")) {
@@ -54,7 +51,7 @@ _QuoteRefresher_isRunning = new WeakMap(), _QuoteRefresher_isUpdating = new Weak
54
51
  }, _QuoteRefresher_onInterval = async function _QuoteRefresher_onInterval() {
55
52
  __classPrivateFieldSet(this, _QuoteRefresher_isUpdating, true, "f");
56
53
  try {
57
- await (0, quotes_1.refreshQuotes)(__classPrivateFieldGet(this, _QuoteRefresher_messenger, "f"), __classPrivateFieldGet(this, _QuoteRefresher_updateTransactionData, "f"), __classPrivateFieldGet(this, _QuoteRefresher_getStrategies, "f"));
54
+ await (0, quotes_1.refreshQuotes)(__classPrivateFieldGet(this, _QuoteRefresher_messenger, "f"), __classPrivateFieldGet(this, _QuoteRefresher_updateTransactionData, "f"));
58
55
  }
59
56
  catch (error) {
60
57
  log('Error refreshing quotes', error);
@@ -1 +1 @@
1
- {"version":3,"file":"QuoteRefresher.cjs","sourceRoot":"","sources":["../../src/helpers/QuoteRefresher.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TransactionMeta } from '@metamask/transaction-controller';\nimport { createModuleLogger } from '@metamask/utils';\nimport { noop } from 'lodash';\n\nimport type {\n TransactionPayControllerMessenger,\n TransactionPayControllerState,\n} from '..';\nimport { TransactionPayStrategy } from '../constants';\nimport { projectLogger } from '../logger';\nimport type { UpdateTransactionDataCallback } from '../types';\nimport { refreshQuotes } from '../utils/quotes';\n\nconst CHECK_INTERVAL = 1000; // 1 Second\n\nconst log = createModuleLogger(projectLogger, 'quote-refresh');\n\nexport class QuoteRefresher {\n #isRunning: boolean;\n\n #isUpdating: boolean;\n\n readonly #messenger: TransactionPayControllerMessenger;\n\n #timeoutId: NodeJS.Timeout | undefined;\n\n readonly #getStrategies: (\n transaction: TransactionMeta,\n ) => TransactionPayStrategy[];\n\n readonly #updateTransactionData: UpdateTransactionDataCallback;\n\n constructor({\n getStrategies,\n messenger,\n updateTransactionData,\n }: {\n getStrategies: (transaction: TransactionMeta) => TransactionPayStrategy[];\n messenger: TransactionPayControllerMessenger;\n updateTransactionData: UpdateTransactionDataCallback;\n }) {\n this.#getStrategies = getStrategies;\n this.#messenger = messenger;\n this.#isRunning = false;\n this.#isUpdating = false;\n this.#updateTransactionData = updateTransactionData;\n\n messenger.subscribe(\n 'TransactionPayController:stateChange',\n this.#onStateChange.bind(this),\n );\n }\n\n #start(): void {\n this.#isRunning = true;\n\n log('Started');\n\n if (this.#isUpdating) {\n return;\n }\n\n this.#queueNextInterval();\n }\n\n #stop(): void {\n if (this.#timeoutId) {\n clearTimeout(this.#timeoutId);\n }\n\n this.#isRunning = false;\n\n log('Stopped');\n }\n\n async #onInterval(): Promise<void> {\n this.#isUpdating = true;\n\n try {\n await refreshQuotes(\n this.#messenger,\n this.#updateTransactionData,\n this.#getStrategies,\n );\n } catch (error) {\n log('Error refreshing quotes', error);\n } finally {\n this.#isUpdating = false;\n\n this.#queueNextInterval();\n }\n }\n\n #queueNextInterval(): void {\n if (!this.#isRunning) {\n return;\n }\n\n if (this.#timeoutId) {\n clearTimeout(this.#timeoutId);\n }\n\n this.#timeoutId = setTimeout(() => {\n this.#onInterval().catch(noop);\n }, CHECK_INTERVAL);\n }\n\n #onStateChange(state: TransactionPayControllerState): void {\n const hasQuotes = Object.values(state.transactionData).some((transaction) =>\n Boolean(transaction.quotes?.length),\n );\n\n if (hasQuotes && !this.#isRunning) {\n this.#start();\n } else if (!hasQuotes && this.#isRunning) {\n this.#stop();\n }\n }\n}\n"]}
1
+ {"version":3,"file":"QuoteRefresher.cjs","sourceRoot":"","sources":["../../src/helpers/QuoteRefresher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqD;AACrD,mCAA8B;AAM9B,0CAA0C;AAE1C,gDAAgD;AAEhD,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,WAAW;AAExC,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAAC,sBAAa,EAAE,eAAe,CAAC,CAAC;AAE/D,MAAa,cAAc;IAWzB,YAAY,EACV,SAAS,EACT,qBAAqB,GAItB;;QAhBD,4CAAoB;QAEpB,6CAAqB;QAEZ,4CAA8C;QAEvD,4CAAuC;QAE9B,wDAAsD;QAS7D,uBAAA,IAAI,6BAAc,SAAS,MAAA,CAAC;QAC5B,uBAAA,IAAI,6BAAc,KAAK,MAAA,CAAC;QACxB,uBAAA,IAAI,8BAAe,KAAK,MAAA,CAAC;QACzB,uBAAA,IAAI,yCAA0B,qBAAqB,MAAA,CAAC;QAEpD,SAAS,CAAC,SAAS,CACjB,sCAAsC,EACtC,uBAAA,IAAI,gEAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAC;IACJ,CAAC;CA+DF;AA1FD,wCA0FC;;IA5DG,uBAAA,IAAI,6BAAc,IAAI,MAAA,CAAC;IAEvB,GAAG,CAAC,SAAS,CAAC,CAAC;IAEf,IAAI,uBAAA,IAAI,kCAAY,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,uBAAA,IAAI,oEAAmB,MAAvB,IAAI,CAAqB,CAAC;AAC5B,CAAC;IAGC,IAAI,uBAAA,IAAI,iCAAW,EAAE,CAAC;QACpB,YAAY,CAAC,uBAAA,IAAI,iCAAW,CAAC,CAAC;IAChC,CAAC;IAED,uBAAA,IAAI,6BAAc,KAAK,MAAA,CAAC;IAExB,GAAG,CAAC,SAAS,CAAC,CAAC;AACjB,CAAC,+BAED,KAAK;IACH,uBAAA,IAAI,8BAAe,IAAI,MAAA,CAAC;IAExB,IAAI,CAAC;QACH,MAAM,IAAA,sBAAa,EAAC,uBAAA,IAAI,iCAAW,EAAE,uBAAA,IAAI,6CAAuB,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;YAAS,CAAC;QACT,uBAAA,IAAI,8BAAe,KAAK,MAAA,CAAC;QAEzB,uBAAA,IAAI,oEAAmB,MAAvB,IAAI,CAAqB,CAAC;IAC5B,CAAC;AACH,CAAC;IAGC,IAAI,CAAC,uBAAA,IAAI,iCAAW,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,uBAAA,IAAI,iCAAW,EAAE,CAAC;QACpB,YAAY,CAAC,uBAAA,IAAI,iCAAW,CAAC,CAAC;IAChC,CAAC;IAED,uBAAA,IAAI,6BAAc,UAAU,CAAC,GAAG,EAAE;QAChC,uBAAA,IAAI,6DAAY,MAAhB,IAAI,CAAc,CAAC,KAAK,CAAC,aAAI,CAAC,CAAC;IACjC,CAAC,EAAE,cAAc,CAAC,MAAA,CAAC;AACrB,CAAC,yEAEc,KAAoC;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAC1E,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CACpC,CAAC;IAEF,IAAI,SAAS,IAAI,CAAC,uBAAA,IAAI,iCAAW,EAAE,CAAC;QAClC,uBAAA,IAAI,wDAAO,MAAX,IAAI,CAAS,CAAC;IAChB,CAAC;SAAM,IAAI,CAAC,SAAS,IAAI,uBAAA,IAAI,iCAAW,EAAE,CAAC;QACzC,uBAAA,IAAI,uDAAM,MAAV,IAAI,CAAQ,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import { createModuleLogger } from '@metamask/utils';\nimport { noop } from 'lodash';\n\nimport type {\n TransactionPayControllerMessenger,\n TransactionPayControllerState,\n} from '..';\nimport { projectLogger } from '../logger';\nimport type { UpdateTransactionDataCallback } from '../types';\nimport { refreshQuotes } from '../utils/quotes';\n\nconst CHECK_INTERVAL = 1000; // 1 Second\n\nconst log = createModuleLogger(projectLogger, 'quote-refresh');\n\nexport class QuoteRefresher {\n #isRunning: boolean;\n\n #isUpdating: boolean;\n\n readonly #messenger: TransactionPayControllerMessenger;\n\n #timeoutId: NodeJS.Timeout | undefined;\n\n readonly #updateTransactionData: UpdateTransactionDataCallback;\n\n constructor({\n messenger,\n updateTransactionData,\n }: {\n messenger: TransactionPayControllerMessenger;\n updateTransactionData: UpdateTransactionDataCallback;\n }) {\n this.#messenger = messenger;\n this.#isRunning = false;\n this.#isUpdating = false;\n this.#updateTransactionData = updateTransactionData;\n\n messenger.subscribe(\n 'TransactionPayController:stateChange',\n this.#onStateChange.bind(this),\n );\n }\n\n #start(): void {\n this.#isRunning = true;\n\n log('Started');\n\n if (this.#isUpdating) {\n return;\n }\n\n this.#queueNextInterval();\n }\n\n #stop(): void {\n if (this.#timeoutId) {\n clearTimeout(this.#timeoutId);\n }\n\n this.#isRunning = false;\n\n log('Stopped');\n }\n\n async #onInterval(): Promise<void> {\n this.#isUpdating = true;\n\n try {\n await refreshQuotes(this.#messenger, this.#updateTransactionData);\n } catch (error) {\n log('Error refreshing quotes', error);\n } finally {\n this.#isUpdating = false;\n\n this.#queueNextInterval();\n }\n }\n\n #queueNextInterval(): void {\n if (!this.#isRunning) {\n return;\n }\n\n if (this.#timeoutId) {\n clearTimeout(this.#timeoutId);\n }\n\n this.#timeoutId = setTimeout(() => {\n this.#onInterval().catch(noop);\n }, CHECK_INTERVAL);\n }\n\n #onStateChange(state: TransactionPayControllerState): void {\n const hasQuotes = Object.values(state.transactionData).some((transaction) =>\n Boolean(transaction.quotes?.length),\n );\n\n if (hasQuotes && !this.#isRunning) {\n this.#start();\n } else if (!hasQuotes && this.#isRunning) {\n this.#stop();\n }\n }\n}\n"]}
@@ -1,11 +1,8 @@
1
- import type { TransactionMeta } from "@metamask/transaction-controller";
2
1
  import type { TransactionPayControllerMessenger } from "../index.cjs";
3
- import { TransactionPayStrategy } from "../constants.cjs";
4
2
  import type { UpdateTransactionDataCallback } from "../types.cjs";
5
3
  export declare class QuoteRefresher {
6
4
  #private;
7
- constructor({ getStrategies, messenger, updateTransactionData, }: {
8
- getStrategies: (transaction: TransactionMeta) => TransactionPayStrategy[];
5
+ constructor({ messenger, updateTransactionData, }: {
9
6
  messenger: TransactionPayControllerMessenger;
10
7
  updateTransactionData: UpdateTransactionDataCallback;
11
8
  });
@@ -1 +1 @@
1
- {"version":3,"file":"QuoteRefresher.d.cts","sourceRoot":"","sources":["../../src/helpers/QuoteRefresher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,yCAAyC;AAIxE,OAAO,KAAK,EACV,iCAAiC,EAElC,qBAAW;AACZ,OAAO,EAAE,sBAAsB,EAAE,yBAAqB;AAEtD,OAAO,KAAK,EAAE,6BAA6B,EAAE,qBAAiB;AAO9D,qBAAa,cAAc;;gBAeb,EACV,aAAa,EACb,SAAS,EACT,qBAAqB,GACtB,EAAE;QACD,aAAa,EAAE,CAAC,WAAW,EAAE,eAAe,KAAK,sBAAsB,EAAE,CAAC;QAC1E,SAAS,EAAE,iCAAiC,CAAC;QAC7C,qBAAqB,EAAE,6BAA6B,CAAC;KACtD;CA8EF"}
1
+ {"version":3,"file":"QuoteRefresher.d.cts","sourceRoot":"","sources":["../../src/helpers/QuoteRefresher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iCAAiC,EAElC,qBAAW;AAEZ,OAAO,KAAK,EAAE,6BAA6B,EAAE,qBAAiB;AAO9D,qBAAa,cAAc;;gBAWb,EACV,SAAS,EACT,qBAAqB,GACtB,EAAE;QACD,SAAS,EAAE,iCAAiC,CAAC;QAC7C,qBAAqB,EAAE,6BAA6B,CAAC;KACtD;CAyEF"}
@@ -1,11 +1,8 @@
1
- import type { TransactionMeta } from "@metamask/transaction-controller";
2
1
  import type { TransactionPayControllerMessenger } from "../index.mjs";
3
- import { TransactionPayStrategy } from "../constants.mjs";
4
2
  import type { UpdateTransactionDataCallback } from "../types.mjs";
5
3
  export declare class QuoteRefresher {
6
4
  #private;
7
- constructor({ getStrategies, messenger, updateTransactionData, }: {
8
- getStrategies: (transaction: TransactionMeta) => TransactionPayStrategy[];
5
+ constructor({ messenger, updateTransactionData, }: {
9
6
  messenger: TransactionPayControllerMessenger;
10
7
  updateTransactionData: UpdateTransactionDataCallback;
11
8
  });
@@ -1 +1 @@
1
- {"version":3,"file":"QuoteRefresher.d.mts","sourceRoot":"","sources":["../../src/helpers/QuoteRefresher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,yCAAyC;AAIxE,OAAO,KAAK,EACV,iCAAiC,EAElC,qBAAW;AACZ,OAAO,EAAE,sBAAsB,EAAE,yBAAqB;AAEtD,OAAO,KAAK,EAAE,6BAA6B,EAAE,qBAAiB;AAO9D,qBAAa,cAAc;;gBAeb,EACV,aAAa,EACb,SAAS,EACT,qBAAqB,GACtB,EAAE;QACD,aAAa,EAAE,CAAC,WAAW,EAAE,eAAe,KAAK,sBAAsB,EAAE,CAAC;QAC1E,SAAS,EAAE,iCAAiC,CAAC;QAC7C,qBAAqB,EAAE,6BAA6B,CAAC;KACtD;CA8EF"}
1
+ {"version":3,"file":"QuoteRefresher.d.mts","sourceRoot":"","sources":["../../src/helpers/QuoteRefresher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iCAAiC,EAElC,qBAAW;AAEZ,OAAO,KAAK,EAAE,6BAA6B,EAAE,qBAAiB;AAO9D,qBAAa,cAAc;;gBAWb,EACV,SAAS,EACT,qBAAqB,GACtB,EAAE;QACD,SAAS,EAAE,iCAAiC,CAAC;QAC7C,qBAAqB,EAAE,6BAA6B,CAAC;KACtD;CAyEF"}
@@ -9,25 +9,22 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _QuoteRefresher_instances, _QuoteRefresher_isRunning, _QuoteRefresher_isUpdating, _QuoteRefresher_messenger, _QuoteRefresher_timeoutId, _QuoteRefresher_getStrategies, _QuoteRefresher_updateTransactionData, _QuoteRefresher_start, _QuoteRefresher_stop, _QuoteRefresher_onInterval, _QuoteRefresher_queueNextInterval, _QuoteRefresher_onStateChange;
12
+ var _QuoteRefresher_instances, _QuoteRefresher_isRunning, _QuoteRefresher_isUpdating, _QuoteRefresher_messenger, _QuoteRefresher_timeoutId, _QuoteRefresher_updateTransactionData, _QuoteRefresher_start, _QuoteRefresher_stop, _QuoteRefresher_onInterval, _QuoteRefresher_queueNextInterval, _QuoteRefresher_onStateChange;
13
13
  import { createModuleLogger } from "@metamask/utils";
14
14
  import $lodash from "lodash";
15
15
  const { noop } = $lodash;
16
- import { TransactionPayStrategy } from "../constants.mjs";
17
16
  import { projectLogger } from "../logger.mjs";
18
17
  import { refreshQuotes } from "../utils/quotes.mjs";
19
18
  const CHECK_INTERVAL = 1000; // 1 Second
20
19
  const log = createModuleLogger(projectLogger, 'quote-refresh');
21
20
  export class QuoteRefresher {
22
- constructor({ getStrategies, messenger, updateTransactionData, }) {
21
+ constructor({ messenger, updateTransactionData, }) {
23
22
  _QuoteRefresher_instances.add(this);
24
23
  _QuoteRefresher_isRunning.set(this, void 0);
25
24
  _QuoteRefresher_isUpdating.set(this, void 0);
26
25
  _QuoteRefresher_messenger.set(this, void 0);
27
26
  _QuoteRefresher_timeoutId.set(this, void 0);
28
- _QuoteRefresher_getStrategies.set(this, void 0);
29
27
  _QuoteRefresher_updateTransactionData.set(this, void 0);
30
- __classPrivateFieldSet(this, _QuoteRefresher_getStrategies, getStrategies, "f");
31
28
  __classPrivateFieldSet(this, _QuoteRefresher_messenger, messenger, "f");
32
29
  __classPrivateFieldSet(this, _QuoteRefresher_isRunning, false, "f");
33
30
  __classPrivateFieldSet(this, _QuoteRefresher_isUpdating, false, "f");
@@ -35,7 +32,7 @@ export class QuoteRefresher {
35
32
  messenger.subscribe('TransactionPayController:stateChange', __classPrivateFieldGet(this, _QuoteRefresher_instances, "m", _QuoteRefresher_onStateChange).bind(this));
36
33
  }
37
34
  }
38
- _QuoteRefresher_isRunning = new WeakMap(), _QuoteRefresher_isUpdating = new WeakMap(), _QuoteRefresher_messenger = new WeakMap(), _QuoteRefresher_timeoutId = new WeakMap(), _QuoteRefresher_getStrategies = new WeakMap(), _QuoteRefresher_updateTransactionData = new WeakMap(), _QuoteRefresher_instances = new WeakSet(), _QuoteRefresher_start = function _QuoteRefresher_start() {
35
+ _QuoteRefresher_isRunning = new WeakMap(), _QuoteRefresher_isUpdating = new WeakMap(), _QuoteRefresher_messenger = new WeakMap(), _QuoteRefresher_timeoutId = new WeakMap(), _QuoteRefresher_updateTransactionData = new WeakMap(), _QuoteRefresher_instances = new WeakSet(), _QuoteRefresher_start = function _QuoteRefresher_start() {
39
36
  __classPrivateFieldSet(this, _QuoteRefresher_isRunning, true, "f");
40
37
  log('Started');
41
38
  if (__classPrivateFieldGet(this, _QuoteRefresher_isUpdating, "f")) {
@@ -51,7 +48,7 @@ _QuoteRefresher_isRunning = new WeakMap(), _QuoteRefresher_isUpdating = new Weak
51
48
  }, _QuoteRefresher_onInterval = async function _QuoteRefresher_onInterval() {
52
49
  __classPrivateFieldSet(this, _QuoteRefresher_isUpdating, true, "f");
53
50
  try {
54
- await refreshQuotes(__classPrivateFieldGet(this, _QuoteRefresher_messenger, "f"), __classPrivateFieldGet(this, _QuoteRefresher_updateTransactionData, "f"), __classPrivateFieldGet(this, _QuoteRefresher_getStrategies, "f"));
51
+ await refreshQuotes(__classPrivateFieldGet(this, _QuoteRefresher_messenger, "f"), __classPrivateFieldGet(this, _QuoteRefresher_updateTransactionData, "f"));
55
52
  }
56
53
  catch (error) {
57
54
  log('Error refreshing quotes', error);