@metamask/transaction-pay-controller 22.7.0 → 23.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/dist/TransactionPayController-method-action-types.cjs.map +1 -1
  3. package/dist/TransactionPayController-method-action-types.d.cts +15 -1
  4. package/dist/TransactionPayController-method-action-types.d.cts.map +1 -1
  5. package/dist/TransactionPayController-method-action-types.d.mts +15 -1
  6. package/dist/TransactionPayController-method-action-types.d.mts.map +1 -1
  7. package/dist/TransactionPayController-method-action-types.mjs.map +1 -1
  8. package/dist/TransactionPayController.cjs +19 -3
  9. package/dist/TransactionPayController.cjs.map +1 -1
  10. package/dist/TransactionPayController.d.cts +13 -2
  11. package/dist/TransactionPayController.d.cts.map +1 -1
  12. package/dist/TransactionPayController.d.mts +13 -2
  13. package/dist/TransactionPayController.d.mts.map +1 -1
  14. package/dist/TransactionPayController.mjs +19 -3
  15. package/dist/TransactionPayController.mjs.map +1 -1
  16. package/dist/constants.cjs +1 -0
  17. package/dist/constants.cjs.map +1 -1
  18. package/dist/constants.d.cts +1 -0
  19. package/dist/constants.d.cts.map +1 -1
  20. package/dist/constants.d.mts +1 -0
  21. package/dist/constants.d.mts.map +1 -1
  22. package/dist/constants.mjs +1 -0
  23. package/dist/constants.mjs.map +1 -1
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +1 -1
  26. package/dist/index.d.cts.map +1 -1
  27. package/dist/index.d.mts +1 -1
  28. package/dist/index.d.mts.map +1 -1
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/strategy/across/across-submit.cjs +2 -1
  31. package/dist/strategy/across/across-submit.cjs.map +1 -1
  32. package/dist/strategy/across/across-submit.d.cts.map +1 -1
  33. package/dist/strategy/across/across-submit.d.mts.map +1 -1
  34. package/dist/strategy/across/across-submit.mjs +2 -1
  35. package/dist/strategy/across/across-submit.mjs.map +1 -1
  36. package/dist/strategy/relay/relay-quotes.cjs +20 -3
  37. package/dist/strategy/relay/relay-quotes.cjs.map +1 -1
  38. package/dist/strategy/relay/relay-quotes.d.cts.map +1 -1
  39. package/dist/strategy/relay/relay-quotes.d.mts.map +1 -1
  40. package/dist/strategy/relay/relay-quotes.mjs +20 -3
  41. package/dist/strategy/relay/relay-quotes.mjs.map +1 -1
  42. package/dist/strategy/relay/relay-submit.cjs +27 -13
  43. package/dist/strategy/relay/relay-submit.cjs.map +1 -1
  44. package/dist/strategy/relay/relay-submit.d.cts.map +1 -1
  45. package/dist/strategy/relay/relay-submit.d.mts.map +1 -1
  46. package/dist/strategy/relay/relay-submit.mjs +27 -13
  47. package/dist/strategy/relay/relay-submit.mjs.map +1 -1
  48. package/dist/strategy/server/ServerStrategy.cjs +35 -0
  49. package/dist/strategy/server/ServerStrategy.cjs.map +1 -0
  50. package/dist/strategy/server/ServerStrategy.d.cts +15 -0
  51. package/dist/strategy/server/ServerStrategy.d.cts.map +1 -0
  52. package/dist/strategy/server/ServerStrategy.d.mts +15 -0
  53. package/dist/strategy/server/ServerStrategy.d.mts.map +1 -0
  54. package/dist/strategy/server/ServerStrategy.mjs +31 -0
  55. package/dist/strategy/server/ServerStrategy.mjs.map +1 -0
  56. package/dist/strategy/server/constants.cjs +11 -0
  57. package/dist/strategy/server/constants.cjs.map +1 -0
  58. package/dist/strategy/server/constants.d.cts +8 -0
  59. package/dist/strategy/server/constants.d.cts.map +1 -0
  60. package/dist/strategy/server/constants.d.mts +8 -0
  61. package/dist/strategy/server/constants.d.mts.map +1 -0
  62. package/dist/strategy/server/constants.mjs +8 -0
  63. package/dist/strategy/server/constants.mjs.map +1 -0
  64. package/dist/strategy/server/perps.cjs +71 -0
  65. package/dist/strategy/server/perps.cjs.map +1 -0
  66. package/dist/strategy/server/perps.d.cts +36 -0
  67. package/dist/strategy/server/perps.d.cts.map +1 -0
  68. package/dist/strategy/server/perps.d.mts +36 -0
  69. package/dist/strategy/server/perps.d.mts.map +1 -0
  70. package/dist/strategy/server/perps.mjs +66 -0
  71. package/dist/strategy/server/perps.mjs.map +1 -0
  72. package/dist/strategy/server/server-api.cjs +98 -0
  73. package/dist/strategy/server/server-api.cjs.map +1 -0
  74. package/dist/strategy/server/server-api.d.cts +35 -0
  75. package/dist/strategy/server/server-api.d.cts.map +1 -0
  76. package/dist/strategy/server/server-api.d.mts +35 -0
  77. package/dist/strategy/server/server-api.d.mts.map +1 -0
  78. package/dist/strategy/server/server-api.mjs +92 -0
  79. package/dist/strategy/server/server-api.mjs.map +1 -0
  80. package/dist/strategy/server/server-quotes.cjs +315 -0
  81. package/dist/strategy/server/server-quotes.cjs.map +1 -0
  82. package/dist/strategy/server/server-quotes.d.cts +10 -0
  83. package/dist/strategy/server/server-quotes.d.cts.map +1 -0
  84. package/dist/strategy/server/server-quotes.d.mts +10 -0
  85. package/dist/strategy/server/server-quotes.d.mts.map +1 -0
  86. package/dist/strategy/server/server-quotes.mjs +311 -0
  87. package/dist/strategy/server/server-quotes.mjs.map +1 -0
  88. package/dist/strategy/server/server-submit.cjs +296 -0
  89. package/dist/strategy/server/server-submit.cjs.map +1 -0
  90. package/dist/strategy/server/server-submit.d.cts +13 -0
  91. package/dist/strategy/server/server-submit.d.cts.map +1 -0
  92. package/dist/strategy/server/server-submit.d.mts +13 -0
  93. package/dist/strategy/server/server-submit.d.mts.map +1 -0
  94. package/dist/strategy/server/server-submit.mjs +292 -0
  95. package/dist/strategy/server/server-submit.mjs.map +1 -0
  96. package/dist/strategy/server/types.cjs +26 -0
  97. package/dist/strategy/server/types.cjs.map +1 -0
  98. package/dist/strategy/server/types.d.cts +153 -0
  99. package/dist/strategy/server/types.d.cts.map +1 -0
  100. package/dist/strategy/server/types.d.mts +153 -0
  101. package/dist/strategy/server/types.d.mts.map +1 -0
  102. package/dist/strategy/server/types.mjs +23 -0
  103. package/dist/strategy/server/types.mjs.map +1 -0
  104. package/dist/tests/messenger-mock.cjs +6 -0
  105. package/dist/tests/messenger-mock.cjs.map +1 -1
  106. package/dist/tests/messenger-mock.d.cts +256 -3
  107. package/dist/tests/messenger-mock.d.cts.map +1 -1
  108. package/dist/tests/messenger-mock.d.mts +256 -3
  109. package/dist/tests/messenger-mock.d.mts.map +1 -1
  110. package/dist/tests/messenger-mock.mjs +6 -0
  111. package/dist/tests/messenger-mock.mjs.map +1 -1
  112. package/dist/types.cjs.map +1 -1
  113. package/dist/types.d.cts +45 -18
  114. package/dist/types.d.cts.map +1 -1
  115. package/dist/types.d.mts +45 -18
  116. package/dist/types.d.mts.map +1 -1
  117. package/dist/types.mjs.map +1 -1
  118. package/dist/utils/feature-flags.cjs +43 -3
  119. package/dist/utils/feature-flags.cjs.map +1 -1
  120. package/dist/utils/feature-flags.d.cts +21 -0
  121. package/dist/utils/feature-flags.d.cts.map +1 -1
  122. package/dist/utils/feature-flags.d.mts +21 -0
  123. package/dist/utils/feature-flags.d.mts.map +1 -1
  124. package/dist/utils/feature-flags.mjs +40 -2
  125. package/dist/utils/feature-flags.mjs.map +1 -1
  126. package/dist/utils/gas.cjs +13 -11
  127. package/dist/utils/gas.cjs.map +1 -1
  128. package/dist/utils/gas.d.cts +12 -0
  129. package/dist/utils/gas.d.cts.map +1 -1
  130. package/dist/utils/gas.d.mts +12 -0
  131. package/dist/utils/gas.d.mts.map +1 -1
  132. package/dist/utils/gas.mjs +12 -11
  133. package/dist/utils/gas.mjs.map +1 -1
  134. package/dist/utils/provider.cjs +61 -0
  135. package/dist/utils/provider.cjs.map +1 -0
  136. package/dist/utils/provider.d.cts +59 -0
  137. package/dist/utils/provider.d.cts.map +1 -0
  138. package/dist/utils/provider.d.mts +59 -0
  139. package/dist/utils/provider.d.mts.map +1 -0
  140. package/dist/utils/provider.mjs +56 -0
  141. package/dist/utils/provider.mjs.map +1 -0
  142. package/dist/utils/quotes.cjs +9 -3
  143. package/dist/utils/quotes.cjs.map +1 -1
  144. package/dist/utils/quotes.d.cts.map +1 -1
  145. package/dist/utils/quotes.d.mts.map +1 -1
  146. package/dist/utils/quotes.mjs +10 -4
  147. package/dist/utils/quotes.mjs.map +1 -1
  148. package/dist/utils/strategy.cjs +3 -0
  149. package/dist/utils/strategy.cjs.map +1 -1
  150. package/dist/utils/strategy.d.cts.map +1 -1
  151. package/dist/utils/strategy.d.mts.map +1 -1
  152. package/dist/utils/strategy.mjs +3 -0
  153. package/dist/utils/strategy.mjs.map +1 -1
  154. package/dist/utils/token.cjs +28 -16
  155. package/dist/utils/token.cjs.map +1 -1
  156. package/dist/utils/token.d.cts +4 -0
  157. package/dist/utils/token.d.cts.map +1 -1
  158. package/dist/utils/token.d.mts +4 -0
  159. package/dist/utils/token.d.mts.map +1 -1
  160. package/dist/utils/token.mjs +28 -16
  161. package/dist/utils/token.mjs.map +1 -1
  162. package/dist/utils/transaction.cjs +28 -20
  163. package/dist/utils/transaction.cjs.map +1 -1
  164. package/dist/utils/transaction.d.cts.map +1 -1
  165. package/dist/utils/transaction.d.mts.map +1 -1
  166. package/dist/utils/transaction.mjs +28 -20
  167. package/dist/utils/transaction.mjs.map +1 -1
  168. package/package.json +5 -5
@@ -0,0 +1,153 @@
1
+ import type { Hex } from "@metamask/utils";
2
+ /** Provider names supported by the server intents API. */
3
+ export declare enum ServerProviderName {
4
+ Relay = "relay",
5
+ Across = "across"
6
+ }
7
+ /** Trade type for server quote requests. */
8
+ export declare enum ServerTradeType {
9
+ ExactInput = "EXACT_INPUT",
10
+ ExpectedOutput = "EXPECTED_OUTPUT"
11
+ }
12
+ /** Token amount with chain and token context. */
13
+ export type ServerQuoteAmount = {
14
+ chainId: number;
15
+ token: string;
16
+ decimals: number;
17
+ raw: string;
18
+ formatted: string;
19
+ };
20
+ /** A single on-chain step returned by the server quote endpoint. */
21
+ export type ServerQuoteStep = {
22
+ chainId: number;
23
+ to: Hex;
24
+ data: Hex;
25
+ value: string;
26
+ gasLimit?: string;
27
+ maxFeePerGas?: string;
28
+ maxPriorityFeePerGas?: string;
29
+ };
30
+ /** A call to include in the quote request (for delegation flows). */
31
+ export type ServerCall = {
32
+ to: Hex;
33
+ data: Hex;
34
+ value: Hex;
35
+ };
36
+ /** EIP-7702 authorization entry for quote and submit requests. */
37
+ export type ServerAuthorization = {
38
+ address: Hex;
39
+ chainId: number;
40
+ nonce: number;
41
+ r: Hex;
42
+ s: Hex;
43
+ yParity: number;
44
+ };
45
+ /** Request body for POST /quote. */
46
+ export type ServerQuoteRequest = {
47
+ source: {
48
+ chainId: number;
49
+ token: Hex;
50
+ };
51
+ target: {
52
+ chainId: number;
53
+ token: Hex;
54
+ };
55
+ amount: string;
56
+ tradeType: ServerTradeType;
57
+ sender: Hex;
58
+ recipient: Hex;
59
+ refundTo?: Hex;
60
+ slippage?: number;
61
+ providers?: ServerProviderName[];
62
+ calls?: ServerCall[];
63
+ authorizationList?: ServerAuthorization[];
64
+ supportsGasless?: boolean;
65
+ };
66
+ /** Error detail from a rejected quote result. */
67
+ export type ServerQuoteError = {
68
+ code?: string;
69
+ message: string;
70
+ };
71
+ /** A successful quote payload nested inside a ServerQuoteResult. */
72
+ export type ServerQuotePayload = {
73
+ id: string;
74
+ input: ServerQuoteAmount;
75
+ output: ServerQuoteAmount;
76
+ fees: ServerQuoteFees;
77
+ duration: number;
78
+ steps: ServerQuoteStep[];
79
+ gasless: boolean;
80
+ };
81
+ /** Fee breakdown from a quote. */
82
+ export type ServerQuoteFees = {
83
+ metamask: string;
84
+ provider: string;
85
+ subsidized: boolean;
86
+ };
87
+ /** A single provider result within the quote response. */
88
+ export type ServerQuoteResult = {
89
+ provider: ServerProviderName;
90
+ quote?: ServerQuotePayload;
91
+ error?: ServerQuoteError;
92
+ };
93
+ /** Response body from POST /quote. */
94
+ export type ServerQuoteResponse = {
95
+ results: ServerQuoteResult[];
96
+ };
97
+ export type ServerQuoteClient = {
98
+ gasLimits: number[];
99
+ is7702: boolean;
100
+ maxFeePerGas: string | undefined;
101
+ maxPriorityFeePerGas: string | undefined;
102
+ };
103
+ /** Normalized server quote stored in TransactionPayQuote.original. */
104
+ export type ServerQuote = {
105
+ id: string;
106
+ provider: ServerProviderName;
107
+ input: ServerQuoteAmount;
108
+ output: ServerQuoteAmount;
109
+ fees: ServerQuoteFees;
110
+ duration: number;
111
+ client: ServerQuoteClient;
112
+ steps: ServerQuoteStep[];
113
+ gasless: boolean;
114
+ };
115
+ /** Status values returned by GET /status. */
116
+ export declare enum ServerStatus {
117
+ Pending = "PENDING",
118
+ Submitted = "SUBMITTED",
119
+ Confirmed = "CONFIRMED",
120
+ Failed = "FAILED",
121
+ Refunded = "REFUNDED",
122
+ Unknown = "UNKNOWN"
123
+ }
124
+ /** Response body from GET /status. */
125
+ export type ServerStatusResponse = {
126
+ status: ServerStatus;
127
+ sourceHash?: Hex;
128
+ targetHash?: Hex;
129
+ error?: string;
130
+ };
131
+ /** Request body for POST /submit. */
132
+ export type ServerSubmitRequest = {
133
+ provider: ServerProviderName;
134
+ id: string;
135
+ chainId: number;
136
+ to: Hex;
137
+ data: Hex;
138
+ value: string;
139
+ authorizationList?: {
140
+ chainId: number;
141
+ address: Hex;
142
+ nonce: number;
143
+ yParity: number;
144
+ r: Hex;
145
+ s: Hex;
146
+ }[];
147
+ };
148
+ /** Response body from POST /submit. */
149
+ export type ServerSubmitResponse = {
150
+ success: boolean;
151
+ error?: string;
152
+ };
153
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../src/strategy/server/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** Provider names supported by the server intents API. */
2
+ export var ServerProviderName;
3
+ (function (ServerProviderName) {
4
+ ServerProviderName["Relay"] = "relay";
5
+ ServerProviderName["Across"] = "across";
6
+ })(ServerProviderName || (ServerProviderName = {}));
7
+ /** Trade type for server quote requests. */
8
+ export var ServerTradeType;
9
+ (function (ServerTradeType) {
10
+ ServerTradeType["ExactInput"] = "EXACT_INPUT";
11
+ ServerTradeType["ExpectedOutput"] = "EXPECTED_OUTPUT";
12
+ })(ServerTradeType || (ServerTradeType = {}));
13
+ /** Status values returned by GET /status. */
14
+ export var ServerStatus;
15
+ (function (ServerStatus) {
16
+ ServerStatus["Pending"] = "PENDING";
17
+ ServerStatus["Submitted"] = "SUBMITTED";
18
+ ServerStatus["Confirmed"] = "CONFIRMED";
19
+ ServerStatus["Failed"] = "FAILED";
20
+ ServerStatus["Refunded"] = "REFUNDED";
21
+ ServerStatus["Unknown"] = "UNKNOWN";
22
+ })(ServerStatus || (ServerStatus = {}));
23
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../src/strategy/server/types.ts"],"names":[],"mappings":"AAEA,0DAA0D;AAC1D,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,uCAAiB,CAAA;AACnB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,4CAA4C;AAC5C,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,6CAA0B,CAAA;IAC1B,qDAAkC,CAAA;AACpC,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AA+GD,6CAA6C;AAC7C,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;AACrB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB","sourcesContent":["import type { Hex } from '@metamask/utils';\n\n/** Provider names supported by the server intents API. */\nexport enum ServerProviderName {\n Relay = 'relay',\n Across = 'across',\n}\n\n/** Trade type for server quote requests. */\nexport enum ServerTradeType {\n ExactInput = 'EXACT_INPUT',\n ExpectedOutput = 'EXPECTED_OUTPUT',\n}\n\n/** Token amount with chain and token context. */\nexport type ServerQuoteAmount = {\n chainId: number;\n token: string;\n decimals: number;\n raw: string;\n formatted: string;\n};\n\n/** A single on-chain step returned by the server quote endpoint. */\nexport type ServerQuoteStep = {\n chainId: number;\n to: Hex;\n data: Hex;\n value: string;\n gasLimit?: string;\n maxFeePerGas?: string;\n maxPriorityFeePerGas?: string;\n};\n\n/** A call to include in the quote request (for delegation flows). */\nexport type ServerCall = {\n to: Hex;\n data: Hex;\n value: Hex;\n};\n\n/** EIP-7702 authorization entry for quote and submit requests. */\nexport type ServerAuthorization = {\n address: Hex;\n chainId: number;\n nonce: number;\n r: Hex;\n s: Hex;\n yParity: number;\n};\n\n/** Request body for POST /quote. */\nexport type ServerQuoteRequest = {\n source: { chainId: number; token: Hex };\n target: { chainId: number; token: Hex };\n amount: string;\n tradeType: ServerTradeType;\n sender: Hex;\n recipient: Hex;\n refundTo?: Hex;\n slippage?: number;\n providers?: ServerProviderName[];\n calls?: ServerCall[];\n authorizationList?: ServerAuthorization[];\n supportsGasless?: boolean;\n};\n\n/** Error detail from a rejected quote result. */\nexport type ServerQuoteError = {\n code?: string;\n message: string;\n};\n\n/** A successful quote payload nested inside a ServerQuoteResult. */\nexport type ServerQuotePayload = {\n id: string;\n input: ServerQuoteAmount;\n output: ServerQuoteAmount;\n fees: ServerQuoteFees;\n duration: number;\n steps: ServerQuoteStep[];\n gasless: boolean;\n};\n\n/** Fee breakdown from a quote. */\nexport type ServerQuoteFees = {\n metamask: string;\n provider: string;\n subsidized: boolean;\n};\n\n/** A single provider result within the quote response. */\nexport type ServerQuoteResult = {\n provider: ServerProviderName;\n quote?: ServerQuotePayload;\n error?: ServerQuoteError;\n};\n\n/** Response body from POST /quote. */\nexport type ServerQuoteResponse = {\n results: ServerQuoteResult[];\n};\n\nexport type ServerQuoteClient = {\n gasLimits: number[];\n is7702: boolean;\n maxFeePerGas: string | undefined;\n maxPriorityFeePerGas: string | undefined;\n};\n\n/** Normalized server quote stored in TransactionPayQuote.original. */\nexport type ServerQuote = {\n id: string;\n provider: ServerProviderName;\n input: ServerQuoteAmount;\n output: ServerQuoteAmount;\n fees: ServerQuoteFees;\n duration: number;\n client: ServerQuoteClient;\n steps: ServerQuoteStep[];\n gasless: boolean;\n};\n\n/** Status values returned by GET /status. */\nexport enum ServerStatus {\n Pending = 'PENDING',\n Submitted = 'SUBMITTED',\n Confirmed = 'CONFIRMED',\n Failed = 'FAILED',\n Refunded = 'REFUNDED',\n Unknown = 'UNKNOWN',\n}\n\n/** Response body from GET /status. */\nexport type ServerStatusResponse = {\n status: ServerStatus;\n sourceHash?: Hex;\n targetHash?: Hex;\n error?: string;\n};\n\n/** Request body for POST /submit. */\nexport type ServerSubmitRequest = {\n provider: ServerProviderName;\n id: string;\n chainId: number;\n to: Hex;\n data: Hex;\n value: string;\n authorizationList?: {\n chainId: number;\n address: Hex;\n nonce: number;\n yParity: number;\n r: Hex;\n s: Hex;\n }[];\n};\n\n/** Response body from POST /submit. */\nexport type ServerSubmitResponse = {\n success: boolean;\n error?: string;\n};\n"]}
@@ -29,7 +29,9 @@ function getMessengerMock({ skipRegister, } = {}) {
29
29
  const getCurrencyRateControllerStateMock = jest.fn();
30
30
  const getAccountTrackerControllerStateMock = jest.fn();
31
31
  const getNetworkClientByIdMock = jest.fn();
32
+ const getNetworkConfigurationByChainIdMock = jest.fn();
32
33
  const getDelegationTransactionMock = jest.fn();
34
+ const getPaymentOverrideDataMock = jest.fn().mockResolvedValue({ calls: [] });
33
35
  const polymarketGetDepositWalletAddressMock = jest.fn();
34
36
  const polymarketSubmitDepositWalletBatchMock = jest.fn();
35
37
  const getGasFeeTokensMock = jest.fn();
@@ -68,7 +70,9 @@ function getMessengerMock({ skipRegister, } = {}) {
68
70
  messenger.registerActionHandler('AccountTrackerController:getState', getAccountTrackerControllerStateMock);
69
71
  messenger.registerActionHandler('CurrencyRateController:getState', getCurrencyRateControllerStateMock);
70
72
  messenger.registerActionHandler('NetworkController:getNetworkClientById', getNetworkClientByIdMock);
73
+ messenger.registerActionHandler('NetworkController:getNetworkConfigurationByChainId', getNetworkConfigurationByChainIdMock);
71
74
  messenger.registerActionHandler('TransactionPayController:getDelegationTransaction', getDelegationTransactionMock);
75
+ messenger.registerActionHandler('TransactionPayController:getPaymentOverrideData', getPaymentOverrideDataMock);
72
76
  messenger.registerActionHandler('TransactionPayController:polymarketGetDepositWalletAddress', polymarketGetDepositWalletAddressMock);
73
77
  messenger.registerActionHandler('TransactionPayController:polymarketSubmitDepositWalletBatch', polymarketSubmitDepositWalletBatchMock);
74
78
  messenger.registerActionHandler('TransactionController:getGasFeeTokens', getGasFeeTokensMock);
@@ -91,10 +95,12 @@ function getMessengerMock({ skipRegister, } = {}) {
91
95
  getControllerStateMock,
92
96
  getCurrencyRateControllerStateMock,
93
97
  getDelegationTransactionMock,
98
+ getPaymentOverrideDataMock,
94
99
  getGasFeeControllerStateMock,
95
100
  getGasFeeTokensMock,
96
101
  getKeyringControllerStateMock,
97
102
  getNetworkClientByIdMock,
103
+ getNetworkConfigurationByChainIdMock,
98
104
  getRemoteFeatureFlagControllerStateMock,
99
105
  getStrategyMock,
100
106
  getTokenBalanceControllerStateMock,
@@ -1 +1 @@
1
- {"version":3,"file":"messenger-mock.cjs","sourceRoot":"","sources":["../../src/tests/messenger-mock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TokensControllerGetStateAction } from '@metamask/assets-controllers';\nimport type { TokenBalancesControllerGetStateAction } from '@metamask/assets-controllers';\nimport type { TokenRatesControllerGetStateAction } from '@metamask/assets-controllers';\nimport type { AccountTrackerControllerGetStateAction } from '@metamask/assets-controllers';\nimport type {\n BridgeStatusControllerGetStateAction,\n BridgeStatusControllerSubmitTxAction,\n} from '@metamask/bridge-status-controller';\nimport type { KeyringControllerGetStateAction } from '@metamask/keyring-controller';\nimport type {\n MessengerActions,\n MessengerEvents,\n MockAnyNamespace,\n} from '@metamask/messenger';\nimport { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger';\nimport type { NetworkControllerGetNetworkClientByIdAction } from '@metamask/network-controller';\nimport type { NetworkControllerFindNetworkClientIdByChainIdAction } from '@metamask/network-controller';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport type {\n TransactionControllerAddTransactionAction,\n TransactionControllerAddTransactionBatchAction,\n TransactionControllerEstimateGasAction,\n TransactionControllerEstimateGasBatchAction,\n TransactionControllerGetGasFeeTokensAction,\n TransactionControllerGetStateAction,\n} from '@metamask/transaction-controller';\nimport type { TransactionControllerUpdateTransactionAction } from '@metamask/transaction-controller';\n\nimport type { TransactionPayControllerMessenger } from '..';\nimport type {\n TransactionPayControllerGetDelegationTransactionAction,\n TransactionPayControllerGetStrategyAction,\n TransactionPayControllerPolymarketGetDepositWalletAddressAction,\n TransactionPayControllerPolymarketSubmitDepositWalletBatchAction,\n} from '../TransactionPayController-method-action-types';\nimport type { TransactionPayControllerGetStateAction } from '../types';\n\ntype AllActions = MessengerActions<TransactionPayControllerMessenger>;\ntype AllEvents = MessengerEvents<TransactionPayControllerMessenger>;\ntype RootMessenger = Messenger<MockAnyNamespace, AllActions, AllEvents>;\n\n/**\n * Creates a mock controller messenger for testing.\n *\n * @param options - Options for creating the messenger mock.\n * @param options.skipRegister - Whether to skip registering action handlers.\n * @returns The mock messenger and associated mock functions.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function getMessengerMock({\n skipRegister,\n}: { skipRegister?: boolean } = {}) {\n const getControllerStateMock: jest.MockedFn<\n TransactionPayControllerGetStateAction['handler']\n > = jest.fn();\n\n const getStrategyMock: jest.MockedFn<\n TransactionPayControllerGetStrategyAction['handler']\n > = jest.fn();\n\n const getTransactionControllerStateMock: jest.MockedFn<\n TransactionControllerGetStateAction['handler']\n > = jest.fn();\n\n const addTransactionMock: jest.MockedFn<\n TransactionControllerAddTransactionAction['handler']\n > = jest.fn();\n\n const addTransactionBatchMock: jest.MockedFn<\n TransactionControllerAddTransactionBatchAction['handler']\n > = jest.fn();\n\n const findNetworkClientIdByChainIdMock: jest.MockedFn<\n NetworkControllerFindNetworkClientIdByChainIdAction['handler']\n > = jest.fn();\n\n const fetchQuotesMock = jest.fn();\n\n const getRemoteFeatureFlagControllerStateMock: jest.MockedFn<\n RemoteFeatureFlagControllerGetStateAction['handler']\n > = jest.fn();\n\n const getGasFeeControllerStateMock = jest.fn();\n\n const submitTransactionMock: jest.MockedFunction<\n BridgeStatusControllerSubmitTxAction['handler']\n > = jest.fn();\n\n const updateTransactionMock: jest.MockedFn<\n TransactionControllerUpdateTransactionAction['handler']\n > = jest.fn();\n\n const getBridgeStatusControllerStateMock: jest.MockedFn<\n BridgeStatusControllerGetStateAction['handler']\n > = jest.fn();\n\n const getTokensControllerStateMock: jest.MockedFn<\n TokensControllerGetStateAction['handler']\n > = jest.fn();\n\n const getTokenBalanceControllerStateMock: jest.MockedFn<\n TokenBalancesControllerGetStateAction['handler']\n > = jest.fn();\n\n const getTokenRatesControllerStateMock: jest.MockedFn<\n TokenRatesControllerGetStateAction['handler']\n > = jest.fn();\n\n const getCurrencyRateControllerStateMock = jest.fn();\n\n const getAccountTrackerControllerStateMock: jest.MockedFn<\n AccountTrackerControllerGetStateAction['handler']\n > = jest.fn();\n\n const getNetworkClientByIdMock: jest.MockedFn<\n NetworkControllerGetNetworkClientByIdAction['handler']\n > = jest.fn();\n\n const getDelegationTransactionMock: jest.MockedFn<\n TransactionPayControllerGetDelegationTransactionAction['handler']\n > = jest.fn();\n\n const polymarketGetDepositWalletAddressMock: jest.MockedFn<\n TransactionPayControllerPolymarketGetDepositWalletAddressAction['handler']\n > = jest.fn();\n\n const polymarketSubmitDepositWalletBatchMock: jest.MockedFn<\n TransactionPayControllerPolymarketSubmitDepositWalletBatchAction['handler']\n > = jest.fn();\n\n const getGasFeeTokensMock: jest.MockedFn<\n TransactionControllerGetGasFeeTokensAction['handler']\n > = jest.fn();\n\n const estimateGasMock: jest.MockedFn<\n TransactionControllerEstimateGasAction['handler']\n > = jest.fn();\n\n const estimateGasBatchMock: jest.MockedFn<\n TransactionControllerEstimateGasBatchAction['handler']\n > = jest.fn();\n\n const getAssetsControllerStateMock = jest.fn();\n\n const getKeyringControllerStateMock: jest.MockedFn<\n KeyringControllerGetStateAction['handler']\n > = jest.fn().mockReturnValue({\n isUnlocked: true,\n keyrings: [\n {\n type: 'HD Key Tree',\n accounts: ['0x1234567890123456789012345678901234567891'],\n metadata: { id: 'hd-keyring', name: 'HD Key Tree' },\n },\n ],\n });\n\n const messenger: RootMessenger = new Messenger({\n namespace: MOCK_ANY_NAMESPACE,\n });\n\n if (skipRegister !== true) {\n messenger.registerActionHandler(\n 'TransactionPayController:getState',\n getControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionPayController:getStrategy',\n getStrategyMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:getState',\n getTransactionControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:addTransaction',\n addTransactionMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:addTransactionBatch',\n addTransactionBatchMock,\n );\n\n messenger.registerActionHandler(\n 'NetworkController:findNetworkClientIdByChainId',\n findNetworkClientIdByChainIdMock,\n );\n\n messenger.registerActionHandler(\n 'BridgeController:fetchQuotes',\n fetchQuotesMock,\n );\n\n messenger.registerActionHandler(\n 'RemoteFeatureFlagController:getState',\n getRemoteFeatureFlagControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'BridgeStatusController:submitTx',\n submitTransactionMock,\n );\n\n messenger.registerActionHandler(\n 'GasFeeController:getState',\n getGasFeeControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:updateTransaction',\n updateTransactionMock,\n );\n\n messenger.registerActionHandler(\n 'BridgeStatusController:getState',\n getBridgeStatusControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TokensController:getState',\n getTokensControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TokenBalancesController:getState',\n getTokenBalanceControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TokenRatesController:getState',\n getTokenRatesControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'AccountTrackerController:getState',\n getAccountTrackerControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'CurrencyRateController:getState',\n getCurrencyRateControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'NetworkController:getNetworkClientById',\n getNetworkClientByIdMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionPayController:getDelegationTransaction',\n getDelegationTransactionMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionPayController:polymarketGetDepositWalletAddress',\n polymarketGetDepositWalletAddressMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionPayController:polymarketSubmitDepositWalletBatch',\n polymarketSubmitDepositWalletBatchMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:getGasFeeTokens',\n getGasFeeTokensMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:estimateGas',\n estimateGasMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:estimateGasBatch',\n estimateGasBatchMock,\n );\n\n messenger.registerActionHandler(\n 'AssetsController:getStateForTransactionPay',\n getAssetsControllerStateMock,\n );\n }\n\n messenger.registerActionHandler(\n 'KeyringController:getState',\n getKeyringControllerStateMock,\n );\n\n const publish = messenger.publish.bind(messenger);\n\n return {\n addTransactionMock,\n getAssetsControllerStateMock,\n addTransactionBatchMock,\n estimateGasMock,\n estimateGasBatchMock,\n fetchQuotesMock,\n findNetworkClientIdByChainIdMock,\n getAccountTrackerControllerStateMock,\n getBridgeStatusControllerStateMock,\n getControllerStateMock,\n getCurrencyRateControllerStateMock,\n getDelegationTransactionMock,\n getGasFeeControllerStateMock,\n getGasFeeTokensMock,\n getKeyringControllerStateMock,\n getNetworkClientByIdMock,\n getRemoteFeatureFlagControllerStateMock,\n getStrategyMock,\n getTokenBalanceControllerStateMock,\n getTokenRatesControllerStateMock,\n getTokensControllerStateMock,\n getTransactionControllerStateMock,\n messenger: messenger as TransactionPayControllerMessenger,\n polymarketGetDepositWalletAddressMock,\n polymarketSubmitDepositWalletBatchMock,\n publish,\n submitTransactionMock,\n updateTransactionMock,\n };\n}\n"]}
1
+ {"version":3,"file":"messenger-mock.cjs","sourceRoot":"","sources":["../../src/tests/messenger-mock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TokensControllerGetStateAction } from '@metamask/assets-controllers';\nimport type { TokenBalancesControllerGetStateAction } from '@metamask/assets-controllers';\nimport type { TokenRatesControllerGetStateAction } from '@metamask/assets-controllers';\nimport type { AccountTrackerControllerGetStateAction } from '@metamask/assets-controllers';\nimport type {\n BridgeStatusControllerGetStateAction,\n BridgeStatusControllerSubmitTxAction,\n} from '@metamask/bridge-status-controller';\nimport type { KeyringControllerGetStateAction } from '@metamask/keyring-controller';\nimport type {\n MessengerActions,\n MessengerEvents,\n MockAnyNamespace,\n} from '@metamask/messenger';\nimport { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger';\nimport type { NetworkControllerGetNetworkClientByIdAction } from '@metamask/network-controller';\nimport type { NetworkControllerFindNetworkClientIdByChainIdAction } from '@metamask/network-controller';\nimport type { NetworkControllerGetNetworkConfigurationByChainIdAction } from '@metamask/network-controller';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport type {\n TransactionControllerAddTransactionAction,\n TransactionControllerAddTransactionBatchAction,\n TransactionControllerEstimateGasAction,\n TransactionControllerEstimateGasBatchAction,\n TransactionControllerGetGasFeeTokensAction,\n TransactionControllerGetStateAction,\n} from '@metamask/transaction-controller';\nimport type { TransactionControllerUpdateTransactionAction } from '@metamask/transaction-controller';\n\nimport type { TransactionPayControllerMessenger } from '..';\nimport type {\n TransactionPayControllerGetDelegationTransactionAction,\n TransactionPayControllerGetPaymentOverrideDataAction,\n TransactionPayControllerGetStrategyAction,\n TransactionPayControllerPolymarketGetDepositWalletAddressAction,\n TransactionPayControllerPolymarketSubmitDepositWalletBatchAction,\n} from '../TransactionPayController-method-action-types';\nimport type { TransactionPayControllerGetStateAction } from '../types';\n\ntype AllActions = MessengerActions<TransactionPayControllerMessenger>;\ntype AllEvents = MessengerEvents<TransactionPayControllerMessenger>;\ntype RootMessenger = Messenger<MockAnyNamespace, AllActions, AllEvents>;\n\n/**\n * Creates a mock controller messenger for testing.\n *\n * @param options - Options for creating the messenger mock.\n * @param options.skipRegister - Whether to skip registering action handlers.\n * @returns The mock messenger and associated mock functions.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function getMessengerMock({\n skipRegister,\n}: { skipRegister?: boolean } = {}) {\n const getControllerStateMock: jest.MockedFn<\n TransactionPayControllerGetStateAction['handler']\n > = jest.fn();\n\n const getStrategyMock: jest.MockedFn<\n TransactionPayControllerGetStrategyAction['handler']\n > = jest.fn();\n\n const getTransactionControllerStateMock: jest.MockedFn<\n TransactionControllerGetStateAction['handler']\n > = jest.fn();\n\n const addTransactionMock: jest.MockedFn<\n TransactionControllerAddTransactionAction['handler']\n > = jest.fn();\n\n const addTransactionBatchMock: jest.MockedFn<\n TransactionControllerAddTransactionBatchAction['handler']\n > = jest.fn();\n\n const findNetworkClientIdByChainIdMock: jest.MockedFn<\n NetworkControllerFindNetworkClientIdByChainIdAction['handler']\n > = jest.fn();\n\n const fetchQuotesMock = jest.fn();\n\n const getRemoteFeatureFlagControllerStateMock: jest.MockedFn<\n RemoteFeatureFlagControllerGetStateAction['handler']\n > = jest.fn();\n\n const getGasFeeControllerStateMock = jest.fn();\n\n const submitTransactionMock: jest.MockedFunction<\n BridgeStatusControllerSubmitTxAction['handler']\n > = jest.fn();\n\n const updateTransactionMock: jest.MockedFn<\n TransactionControllerUpdateTransactionAction['handler']\n > = jest.fn();\n\n const getBridgeStatusControllerStateMock: jest.MockedFn<\n BridgeStatusControllerGetStateAction['handler']\n > = jest.fn();\n\n const getTokensControllerStateMock: jest.MockedFn<\n TokensControllerGetStateAction['handler']\n > = jest.fn();\n\n const getTokenBalanceControllerStateMock: jest.MockedFn<\n TokenBalancesControllerGetStateAction['handler']\n > = jest.fn();\n\n const getTokenRatesControllerStateMock: jest.MockedFn<\n TokenRatesControllerGetStateAction['handler']\n > = jest.fn();\n\n const getCurrencyRateControllerStateMock = jest.fn();\n\n const getAccountTrackerControllerStateMock: jest.MockedFn<\n AccountTrackerControllerGetStateAction['handler']\n > = jest.fn();\n\n const getNetworkClientByIdMock: jest.MockedFn<\n NetworkControllerGetNetworkClientByIdAction['handler']\n > = jest.fn();\n\n const getNetworkConfigurationByChainIdMock: jest.MockedFn<\n NetworkControllerGetNetworkConfigurationByChainIdAction['handler']\n > = jest.fn();\n\n const getDelegationTransactionMock: jest.MockedFn<\n TransactionPayControllerGetDelegationTransactionAction['handler']\n > = jest.fn();\n\n const getPaymentOverrideDataMock: jest.MockedFn<\n TransactionPayControllerGetPaymentOverrideDataAction['handler']\n > = jest.fn().mockResolvedValue({ calls: [] });\n\n const polymarketGetDepositWalletAddressMock: jest.MockedFn<\n TransactionPayControllerPolymarketGetDepositWalletAddressAction['handler']\n > = jest.fn();\n\n const polymarketSubmitDepositWalletBatchMock: jest.MockedFn<\n TransactionPayControllerPolymarketSubmitDepositWalletBatchAction['handler']\n > = jest.fn();\n\n const getGasFeeTokensMock: jest.MockedFn<\n TransactionControllerGetGasFeeTokensAction['handler']\n > = jest.fn();\n\n const estimateGasMock: jest.MockedFn<\n TransactionControllerEstimateGasAction['handler']\n > = jest.fn();\n\n const estimateGasBatchMock: jest.MockedFn<\n TransactionControllerEstimateGasBatchAction['handler']\n > = jest.fn();\n\n const getAssetsControllerStateMock = jest.fn();\n\n const getKeyringControllerStateMock: jest.MockedFn<\n KeyringControllerGetStateAction['handler']\n > = jest.fn().mockReturnValue({\n isUnlocked: true,\n keyrings: [\n {\n type: 'HD Key Tree',\n accounts: ['0x1234567890123456789012345678901234567891'],\n metadata: { id: 'hd-keyring', name: 'HD Key Tree' },\n },\n ],\n });\n\n const messenger: RootMessenger = new Messenger({\n namespace: MOCK_ANY_NAMESPACE,\n });\n\n if (skipRegister !== true) {\n messenger.registerActionHandler(\n 'TransactionPayController:getState',\n getControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionPayController:getStrategy',\n getStrategyMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:getState',\n getTransactionControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:addTransaction',\n addTransactionMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:addTransactionBatch',\n addTransactionBatchMock,\n );\n\n messenger.registerActionHandler(\n 'NetworkController:findNetworkClientIdByChainId',\n findNetworkClientIdByChainIdMock,\n );\n\n messenger.registerActionHandler(\n 'BridgeController:fetchQuotes',\n fetchQuotesMock,\n );\n\n messenger.registerActionHandler(\n 'RemoteFeatureFlagController:getState',\n getRemoteFeatureFlagControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'BridgeStatusController:submitTx',\n submitTransactionMock,\n );\n\n messenger.registerActionHandler(\n 'GasFeeController:getState',\n getGasFeeControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:updateTransaction',\n updateTransactionMock,\n );\n\n messenger.registerActionHandler(\n 'BridgeStatusController:getState',\n getBridgeStatusControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TokensController:getState',\n getTokensControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TokenBalancesController:getState',\n getTokenBalanceControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'TokenRatesController:getState',\n getTokenRatesControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'AccountTrackerController:getState',\n getAccountTrackerControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'CurrencyRateController:getState',\n getCurrencyRateControllerStateMock,\n );\n\n messenger.registerActionHandler(\n 'NetworkController:getNetworkClientById',\n getNetworkClientByIdMock,\n );\n\n messenger.registerActionHandler(\n 'NetworkController:getNetworkConfigurationByChainId',\n getNetworkConfigurationByChainIdMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionPayController:getDelegationTransaction',\n getDelegationTransactionMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionPayController:getPaymentOverrideData',\n getPaymentOverrideDataMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionPayController:polymarketGetDepositWalletAddress',\n polymarketGetDepositWalletAddressMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionPayController:polymarketSubmitDepositWalletBatch',\n polymarketSubmitDepositWalletBatchMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:getGasFeeTokens',\n getGasFeeTokensMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:estimateGas',\n estimateGasMock,\n );\n\n messenger.registerActionHandler(\n 'TransactionController:estimateGasBatch',\n estimateGasBatchMock,\n );\n\n messenger.registerActionHandler(\n 'AssetsController:getStateForTransactionPay',\n getAssetsControllerStateMock,\n );\n }\n\n messenger.registerActionHandler(\n 'KeyringController:getState',\n getKeyringControllerStateMock,\n );\n\n const publish = messenger.publish.bind(messenger);\n\n return {\n addTransactionMock,\n getAssetsControllerStateMock,\n addTransactionBatchMock,\n estimateGasMock,\n estimateGasBatchMock,\n fetchQuotesMock,\n findNetworkClientIdByChainIdMock,\n getAccountTrackerControllerStateMock,\n getBridgeStatusControllerStateMock,\n getControllerStateMock,\n getCurrencyRateControllerStateMock,\n getDelegationTransactionMock,\n getPaymentOverrideDataMock,\n getGasFeeControllerStateMock,\n getGasFeeTokensMock,\n getKeyringControllerStateMock,\n getNetworkClientByIdMock,\n getNetworkConfigurationByChainIdMock,\n getRemoteFeatureFlagControllerStateMock,\n getStrategyMock,\n getTokenBalanceControllerStateMock,\n getTokenRatesControllerStateMock,\n getTokensControllerStateMock,\n getTransactionControllerStateMock,\n messenger: messenger as TransactionPayControllerMessenger,\n polymarketGetDepositWalletAddressMock,\n polymarketSubmitDepositWalletBatchMock,\n publish,\n submitTransactionMock,\n updateTransactionMock,\n };\n}\n"]}
@@ -45,6 +45,7 @@ export declare function getMessengerMock({ skipRegister, }?: {
45
45
  to: `0x${string}`;
46
46
  value: `0x${string}`;
47
47
  }>>;
48
+ getPaymentOverrideDataMock: jest.MockedFn<(request: import("../index.cjs").GetPaymentOverrideDataRequest) => Promise<import("../index.cjs").GetPaymentOverrideDataResponse>>;
48
49
  getGasFeeControllerStateMock: jest.Mock<any, any, any>;
49
50
  getGasFeeTokensMock: jest.MockedFn<(request: import("@metamask/transaction-controller").GetGasFeeTokensRequest) => Promise<import("@metamask/transaction-controller").GasFeeToken[]>>;
50
51
  getKeyringControllerStateMock: jest.MockedFn<() => import("@metamask/keyring-controller").KeyringControllerState>;
@@ -52,6 +53,7 @@ export declare function getMessengerMock({ skipRegister, }?: {
52
53
  (infuraNetworkClientId: import("@metamask/controller-utils").InfuraNetworkType): import("@metamask/network-controller").AutoManagedNetworkClient<import("@metamask/network-controller").InfuraNetworkClientConfiguration>;
53
54
  (customNetworkClientId: string): import("@metamask/network-controller").AutoManagedNetworkClient<import("@metamask/network-controller").CustomNetworkClientConfiguration>;
54
55
  }>;
56
+ getNetworkConfigurationByChainIdMock: jest.MockedFn<(chainId: `0x${string}`) => import("@metamask/network-controller").NetworkConfiguration | undefined>;
55
57
  getRemoteFeatureFlagControllerStateMock: jest.MockedFn<() => import("@metamask/remote-feature-flag-controller").RemoteFeatureFlagControllerState>;
56
58
  getStrategyMock: jest.MockedFn<(transaction: import("@metamask/transaction-controller").TransactionMeta) => import("../index.cjs").TransactionPayStrategy>;
57
59
  getTokenBalanceControllerStateMock: jest.MockedFn<() => import("@metamask/assets-controllers").TokenBalancesControllerState>;
@@ -74,7 +76,7 @@ export declare function getMessengerMock({ skipRegister, }?: {
74
76
  sourceHash: `0x${string}`;
75
77
  }>>;
76
78
  publish: <EventType extends "AssetsController:stateChange" | "BridgeStatusController:stateChange" | "CurrencyRateController:stateChange" | "TokenRatesController:stateChange" | "TokensController:stateChange" | "TransactionController:stateChange" | "TransactionController:unapprovedTransactionAdded" | "TransactionPayController:stateChange">(eventType: EventType & `${string}:${string}`, ...payload: import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controller").AssetsControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/bridge-status-controller").BridgeStatusControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controllers").CurrencyRateStateChange, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controllers").TokenRatesControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controllers").TokensControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/transaction-controller").TransactionControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/transaction-controller").TransactionControllerUnapprovedTransactionAddedEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("../index.cjs").TransactionPayControllerStateChangeEvent, EventType>) => void;
77
- submitTransactionMock: jest.MockedFunction<(accountAddress: string, quoteResponse: {
79
+ submitTransactionMock: jest.MockedFunction<(accountAddress: string, maybeQuoteResponses: ({
78
80
  quote: {
79
81
  gasIncluded?: boolean | undefined;
80
82
  gasIncluded7702?: boolean | undefined;
@@ -292,12 +294,231 @@ export declare function getMessengerMock({ skipRegister, }?: {
292
294
  effectiveGas?: number | undefined;
293
295
  } | undefined;
294
296
  quoteRequestIndex?: number | undefined;
295
- } & import("@metamask/bridge-controller").QuoteMetadata, isStxEnabledOnClient: boolean, quotesReceivedContext?: (import("@metamask/bridge-controller").TradeData & {
297
+ } & import("@metamask/bridge-controller").QuoteMetadata) | ({
298
+ quote: {
299
+ gasIncluded?: boolean | undefined;
300
+ gasIncluded7702?: boolean | undefined;
301
+ gasSponsored?: boolean | undefined;
302
+ } & {
303
+ srcChainId: number;
304
+ destChainId: number;
305
+ srcAsset: {
306
+ symbol: string;
307
+ chainId: number;
308
+ address: string;
309
+ assetId: `${string}:${string}/${string}:${string}`;
310
+ name: string;
311
+ decimals: number;
312
+ icon?: string | null | undefined;
313
+ iconUrl?: string | null | undefined;
314
+ };
315
+ destAsset: {
316
+ symbol: string;
317
+ chainId: number;
318
+ address: string;
319
+ assetId: `${string}:${string}/${string}:${string}`;
320
+ name: string;
321
+ decimals: number;
322
+ icon?: string | null | undefined;
323
+ iconUrl?: string | null | undefined;
324
+ };
325
+ requestId: string;
326
+ srcTokenAmount: string;
327
+ destTokenAmount: string;
328
+ minDestTokenAmount: string;
329
+ feeData: {
330
+ metabridge: {
331
+ amount: string;
332
+ asset: {
333
+ symbol: string;
334
+ chainId: number;
335
+ address: string;
336
+ assetId: `${string}:${string}/${string}:${string}`;
337
+ name: string;
338
+ decimals: number;
339
+ icon?: string | null | undefined;
340
+ iconUrl?: string | null | undefined;
341
+ };
342
+ };
343
+ txFee?: ({
344
+ amount: string;
345
+ asset: {
346
+ symbol: string;
347
+ chainId: number;
348
+ address: string;
349
+ assetId: `${string}:${string}/${string}:${string}`;
350
+ name: string;
351
+ decimals: number;
352
+ icon?: string | null | undefined;
353
+ iconUrl?: string | null | undefined;
354
+ };
355
+ } & {
356
+ maxFeePerGas: string;
357
+ maxPriorityFeePerGas: string;
358
+ }) | undefined;
359
+ };
360
+ bridgeId: string;
361
+ bridges: string[];
362
+ steps: {
363
+ action: import("@metamask/bridge-controller").ActionTypes;
364
+ srcChainId: number;
365
+ srcAsset: {
366
+ symbol: string;
367
+ chainId: number;
368
+ address: string;
369
+ assetId: `${string}:${string}/${string}:${string}`;
370
+ name: string;
371
+ decimals: number;
372
+ icon?: string | null | undefined;
373
+ iconUrl?: string | null | undefined;
374
+ };
375
+ destAsset: {
376
+ symbol: string;
377
+ chainId: number;
378
+ address: string;
379
+ assetId: `${string}:${string}/${string}:${string}`;
380
+ name: string;
381
+ decimals: number;
382
+ icon?: string | null | undefined;
383
+ iconUrl?: string | null | undefined;
384
+ };
385
+ srcAmount: string;
386
+ destAmount: string;
387
+ protocol: {
388
+ name: string;
389
+ icon?: string | undefined;
390
+ displayName?: string | undefined;
391
+ };
392
+ destChainId?: number | undefined;
393
+ }[];
394
+ refuel?: {
395
+ action: import("@metamask/bridge-controller").ActionTypes;
396
+ srcChainId: number;
397
+ srcAsset: {
398
+ symbol: string;
399
+ chainId: number;
400
+ address: string;
401
+ assetId: `${string}:${string}/${string}:${string}`;
402
+ name: string;
403
+ decimals: number;
404
+ icon?: string | null | undefined;
405
+ iconUrl?: string | null | undefined;
406
+ };
407
+ destAsset: {
408
+ symbol: string;
409
+ chainId: number;
410
+ address: string;
411
+ assetId: `${string}:${string}/${string}:${string}`;
412
+ name: string;
413
+ decimals: number;
414
+ icon?: string | null | undefined;
415
+ iconUrl?: string | null | undefined;
416
+ };
417
+ srcAmount: string;
418
+ destAmount: string;
419
+ protocol: {
420
+ name: string;
421
+ icon?: string | undefined;
422
+ displayName?: string | undefined;
423
+ };
424
+ destChainId?: number | undefined;
425
+ } | undefined;
426
+ priceData?: {
427
+ totalFromAmountUsd?: string | undefined;
428
+ totalToAmountUsd?: string | undefined;
429
+ priceImpact?: string | undefined;
430
+ totalFeeAmountUsd?: string | undefined;
431
+ } | undefined;
432
+ intent?: {
433
+ protocol: string;
434
+ order: {
435
+ sellToken: `0x${string}`;
436
+ buyToken: `0x${string}`;
437
+ validTo: string | number;
438
+ appData: string;
439
+ appDataHash: `0x${string}`;
440
+ feeAmount: string;
441
+ kind: "buy" | "sell";
442
+ partiallyFillable: boolean;
443
+ receiver?: `0x${string}` | undefined;
444
+ sellAmount?: string | undefined;
445
+ buyAmount?: string | undefined;
446
+ from?: `0x${string}` | undefined;
447
+ };
448
+ typedData: {
449
+ types: Record<string, {
450
+ name: string;
451
+ type: string;
452
+ }[]>;
453
+ primaryType: string;
454
+ domain: Record<string, any>;
455
+ message: Record<string, any>;
456
+ };
457
+ settlementContract?: `0x${string}` | undefined;
458
+ } | undefined;
459
+ };
460
+ estimatedProcessingTimeInSeconds: number;
461
+ trade: string | {
462
+ chainId: number;
463
+ from: `0x${string}`;
464
+ to: `0x${string}`;
465
+ value: `0x${string}`;
466
+ data: `0x${string}`;
467
+ gasLimit: number | null;
468
+ effectiveGas?: number | undefined;
469
+ } | {
470
+ unsignedPsbtBase64: string;
471
+ inputsToSign: {}[] | null;
472
+ } | {
473
+ raw_data_hex: string;
474
+ visible?: boolean | undefined;
475
+ raw_data?: {
476
+ contract?: {
477
+ type?: string | undefined;
478
+ }[] | undefined;
479
+ fee_limit?: number | undefined;
480
+ } | null | undefined;
481
+ };
482
+ quoteId?: string | undefined;
483
+ approval?: {
484
+ chainId: number;
485
+ from: `0x${string}`;
486
+ to: `0x${string}`;
487
+ value: `0x${string}`;
488
+ data: `0x${string}`;
489
+ gasLimit: number | null;
490
+ effectiveGas?: number | undefined;
491
+ } | {
492
+ raw_data_hex: string;
493
+ visible?: boolean | undefined;
494
+ raw_data?: {
495
+ contract?: {
496
+ type?: string | undefined;
497
+ }[] | undefined;
498
+ fee_limit?: number | undefined;
499
+ } | null | undefined;
500
+ } | undefined;
501
+ } & {
502
+ trade: import("@metamask/bridge-controller").Trade;
503
+ approval?: import("@metamask/bridge-controller").Trade | undefined;
504
+ featureId?: import("@metamask/bridge-controller").FeatureId | undefined;
505
+ resetApproval?: {
506
+ chainId: number;
507
+ from: `0x${string}`;
508
+ to: `0x${string}`;
509
+ value: `0x${string}`;
510
+ data: `0x${string}`;
511
+ gasLimit: number | null;
512
+ effectiveGas?: number | undefined;
513
+ } | undefined;
514
+ quoteRequestIndex?: number | undefined;
515
+ } & import("@metamask/bridge-controller").QuoteMetadata)[], isStxEnabled: boolean, quotesReceivedContext?: (import("@metamask/bridge-controller").TradeData & {
296
516
  warnings: import("@metamask/bridge-controller").QuoteWarning[];
297
517
  best_quote_provider: `${string}_${string}` | undefined;
298
518
  price_impact: number;
299
519
  can_submit: boolean;
300
520
  usd_balance_source?: number | undefined;
521
+ has_sufficient_gas_for_quote?: boolean | null | undefined;
301
522
  } & {
302
523
  location?: import("@metamask/bridge-controller").MetaMetricsSwapsEventSource | undefined;
303
524
  ab_tests?: Record<string, string> | undefined;
@@ -308,7 +529,39 @@ export declare function getMessengerMock({ skipRegister, }?: {
308
529
  }) | undefined, location?: import("@metamask/bridge-controller").MetaMetricsSwapsEventSource | undefined, abTests?: Record<string, string> | undefined, activeAbTests?: {
309
530
  key: string;
310
531
  value: string;
311
- }[] | undefined, tokenSecurityTypeDestination?: string | null | undefined) => Promise<import("@metamask/transaction-controller").TransactionMeta & Partial<import("../../../bridge-status-controller/src/types.cjs").SolanaTransactionMeta>>>;
532
+ }[] | undefined, tokenSecurityTypeDestination?: string | null | undefined, batchSellTrades?: ({
533
+ transactions: ({
534
+ chainId: number;
535
+ from: `0x${string}`;
536
+ to: `0x${string}`;
537
+ value: `0x${string}`;
538
+ data: `0x${string}`;
539
+ gasLimit: number | null;
540
+ effectiveGas?: number | undefined;
541
+ } & {
542
+ maxFeePerGas: `0x${string}`;
543
+ maxPriorityFeePerGas: `0x${string}`;
544
+ } & {
545
+ type: import("@metamask/bridge-controller").BatchSellTransactionType;
546
+ })[];
547
+ fee?: {
548
+ amount: string;
549
+ asset: {
550
+ symbol: string;
551
+ chainId: number;
552
+ address: string;
553
+ assetId: `${string}:${string}/${string}:${string}`;
554
+ name: string;
555
+ decimals: number;
556
+ icon?: string | null | undefined;
557
+ iconUrl?: string | null | undefined;
558
+ };
559
+ } | undefined;
560
+ } & {
561
+ gasIncluded?: boolean | undefined;
562
+ gasIncluded7702?: boolean | undefined;
563
+ gasSponsored?: boolean | undefined;
564
+ }) | null | undefined) => Promise<import("@metamask/transaction-controller").TransactionMeta>>;
312
565
  updateTransactionMock: jest.MockedFn<(transactionMeta: import("@metamask/transaction-controller").TransactionMeta, note: string) => void>;
313
566
  };
314
567
  //# sourceMappingURL=messenger-mock.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messenger-mock.d.cts","sourceRoot":"","sources":["../../src/tests/messenger-mock.ts"],"names":[],"mappings":";AA4BA,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAW;AAa5D;;;;;;GAMG;AAEH,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,GACb,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkRjC"}
1
+ {"version":3,"file":"messenger-mock.d.cts","sourceRoot":"","sources":["../../src/tests/messenger-mock.ts"],"names":[],"mappings":";AA6BA,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAW;AAc5D;;;;;;GAMG;AAEH,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,GACb,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsSjC"}