@metamask-previews/transaction-pay-controller 0.0.0-preview-6bf4b220

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 (212) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/LICENSE +20 -0
  3. package/README.md +19 -0
  4. package/dist/TransactionPayController.cjs +90 -0
  5. package/dist/TransactionPayController.cjs.map +1 -0
  6. package/dist/TransactionPayController.d.cts +14 -0
  7. package/dist/TransactionPayController.d.cts.map +1 -0
  8. package/dist/TransactionPayController.d.mts +14 -0
  9. package/dist/TransactionPayController.d.mts.map +1 -0
  10. package/dist/TransactionPayController.mjs +87 -0
  11. package/dist/TransactionPayController.mjs.map +1 -0
  12. package/dist/actions/update-payment-token.cjs +79 -0
  13. package/dist/actions/update-payment-token.cjs.map +1 -0
  14. package/dist/actions/update-payment-token.d.cts +20 -0
  15. package/dist/actions/update-payment-token.d.cts.map +1 -0
  16. package/dist/actions/update-payment-token.d.mts +20 -0
  17. package/dist/actions/update-payment-token.d.mts.map +1 -0
  18. package/dist/actions/update-payment-token.mjs +75 -0
  19. package/dist/actions/update-payment-token.mjs.map +1 -0
  20. package/dist/constants.cjs +12 -0
  21. package/dist/constants.cjs.map +1 -0
  22. package/dist/constants.d.cts +8 -0
  23. package/dist/constants.d.cts.map +1 -0
  24. package/dist/constants.d.mts +8 -0
  25. package/dist/constants.d.mts.map +1 -0
  26. package/dist/constants.mjs +9 -0
  27. package/dist/constants.mjs.map +1 -0
  28. package/dist/helpers/TransactionPayPublishHook.cjs +61 -0
  29. package/dist/helpers/TransactionPayPublishHook.cjs.map +1 -0
  30. package/dist/helpers/TransactionPayPublishHook.d.cts +12 -0
  31. package/dist/helpers/TransactionPayPublishHook.d.cts.map +1 -0
  32. package/dist/helpers/TransactionPayPublishHook.d.mts +12 -0
  33. package/dist/helpers/TransactionPayPublishHook.d.mts.map +1 -0
  34. package/dist/helpers/TransactionPayPublishHook.mjs +57 -0
  35. package/dist/helpers/TransactionPayPublishHook.mjs.map +1 -0
  36. package/dist/index.cjs +10 -0
  37. package/dist/index.cjs.map +1 -0
  38. package/dist/index.d.cts +6 -0
  39. package/dist/index.d.cts.map +1 -0
  40. package/dist/index.d.mts +6 -0
  41. package/dist/index.d.mts.map +1 -0
  42. package/dist/index.mjs +4 -0
  43. package/dist/index.mjs.map +1 -0
  44. package/dist/logger.cjs +8 -0
  45. package/dist/logger.cjs.map +1 -0
  46. package/dist/logger.d.cts +5 -0
  47. package/dist/logger.d.cts.map +1 -0
  48. package/dist/logger.d.mts +5 -0
  49. package/dist/logger.d.mts.map +1 -0
  50. package/dist/logger.mjs +5 -0
  51. package/dist/logger.mjs.map +1 -0
  52. package/dist/strategy/bridge/BridgeStrategy.cjs +30 -0
  53. package/dist/strategy/bridge/BridgeStrategy.cjs.map +1 -0
  54. package/dist/strategy/bridge/BridgeStrategy.d.cts +11 -0
  55. package/dist/strategy/bridge/BridgeStrategy.d.cts.map +1 -0
  56. package/dist/strategy/bridge/BridgeStrategy.d.mts +11 -0
  57. package/dist/strategy/bridge/BridgeStrategy.d.mts.map +1 -0
  58. package/dist/strategy/bridge/BridgeStrategy.mjs +26 -0
  59. package/dist/strategy/bridge/BridgeStrategy.mjs.map +1 -0
  60. package/dist/strategy/bridge/bridge-quotes.cjs +396 -0
  61. package/dist/strategy/bridge/bridge-quotes.cjs.map +1 -0
  62. package/dist/strategy/bridge/bridge-quotes.d.cts +35 -0
  63. package/dist/strategy/bridge/bridge-quotes.d.cts.map +1 -0
  64. package/dist/strategy/bridge/bridge-quotes.d.mts +35 -0
  65. package/dist/strategy/bridge/bridge-quotes.d.mts.map +1 -0
  66. package/dist/strategy/bridge/bridge-quotes.mjs +390 -0
  67. package/dist/strategy/bridge/bridge-quotes.mjs.map +1 -0
  68. package/dist/strategy/bridge/bridge-submit.cjs +155 -0
  69. package/dist/strategy/bridge/bridge-submit.cjs.map +1 -0
  70. package/dist/strategy/bridge/bridge-submit.d.cts +19 -0
  71. package/dist/strategy/bridge/bridge-submit.d.cts.map +1 -0
  72. package/dist/strategy/bridge/bridge-submit.d.mts +19 -0
  73. package/dist/strategy/bridge/bridge-submit.d.mts.map +1 -0
  74. package/dist/strategy/bridge/bridge-submit.mjs +152 -0
  75. package/dist/strategy/bridge/bridge-submit.mjs.map +1 -0
  76. package/dist/strategy/bridge/types.cjs +3 -0
  77. package/dist/strategy/bridge/types.cjs.map +1 -0
  78. package/dist/strategy/bridge/types.d.cts +27 -0
  79. package/dist/strategy/bridge/types.d.cts.map +1 -0
  80. package/dist/strategy/bridge/types.d.mts +27 -0
  81. package/dist/strategy/bridge/types.d.mts.map +1 -0
  82. package/dist/strategy/bridge/types.mjs +2 -0
  83. package/dist/strategy/bridge/types.mjs.map +1 -0
  84. package/dist/strategy/relay/RelayStrategy.cjs +15 -0
  85. package/dist/strategy/relay/RelayStrategy.cjs.map +1 -0
  86. package/dist/strategy/relay/RelayStrategy.d.cts +9 -0
  87. package/dist/strategy/relay/RelayStrategy.d.cts.map +1 -0
  88. package/dist/strategy/relay/RelayStrategy.d.mts +9 -0
  89. package/dist/strategy/relay/RelayStrategy.d.mts.map +1 -0
  90. package/dist/strategy/relay/RelayStrategy.mjs +11 -0
  91. package/dist/strategy/relay/RelayStrategy.mjs.map +1 -0
  92. package/dist/strategy/relay/constants.cjs +8 -0
  93. package/dist/strategy/relay/constants.cjs.map +1 -0
  94. package/dist/strategy/relay/constants.d.cts +5 -0
  95. package/dist/strategy/relay/constants.d.cts.map +1 -0
  96. package/dist/strategy/relay/constants.d.mts +5 -0
  97. package/dist/strategy/relay/constants.d.mts.map +1 -0
  98. package/dist/strategy/relay/constants.mjs +5 -0
  99. package/dist/strategy/relay/constants.mjs.map +1 -0
  100. package/dist/strategy/relay/relay-quotes.cjs +193 -0
  101. package/dist/strategy/relay/relay-quotes.cjs.map +1 -0
  102. package/dist/strategy/relay/relay-quotes.d.cts +10 -0
  103. package/dist/strategy/relay/relay-quotes.d.cts.map +1 -0
  104. package/dist/strategy/relay/relay-quotes.d.mts +10 -0
  105. package/dist/strategy/relay/relay-quotes.d.mts.map +1 -0
  106. package/dist/strategy/relay/relay-quotes.mjs +189 -0
  107. package/dist/strategy/relay/relay-quotes.mjs.map +1 -0
  108. package/dist/strategy/relay/relay-submit.cjs +129 -0
  109. package/dist/strategy/relay/relay-submit.cjs.map +1 -0
  110. package/dist/strategy/relay/relay-submit.d.cts +13 -0
  111. package/dist/strategy/relay/relay-submit.d.cts.map +1 -0
  112. package/dist/strategy/relay/relay-submit.d.mts +13 -0
  113. package/dist/strategy/relay/relay-submit.d.mts.map +1 -0
  114. package/dist/strategy/relay/relay-submit.mjs +125 -0
  115. package/dist/strategy/relay/relay-submit.mjs.map +1 -0
  116. package/dist/strategy/relay/types.cjs +3 -0
  117. package/dist/strategy/relay/types.cjs.map +1 -0
  118. package/dist/strategy/relay/types.d.cts +52 -0
  119. package/dist/strategy/relay/types.d.cts.map +1 -0
  120. package/dist/strategy/relay/types.d.mts +52 -0
  121. package/dist/strategy/relay/types.d.mts.map +1 -0
  122. package/dist/strategy/relay/types.mjs +2 -0
  123. package/dist/strategy/relay/types.mjs.map +1 -0
  124. package/dist/strategy/test/TestStrategy.cjs +48 -0
  125. package/dist/strategy/test/TestStrategy.cjs.map +1 -0
  126. package/dist/strategy/test/TestStrategy.d.cts +9 -0
  127. package/dist/strategy/test/TestStrategy.d.cts.map +1 -0
  128. package/dist/strategy/test/TestStrategy.d.mts +9 -0
  129. package/dist/strategy/test/TestStrategy.d.mts.map +1 -0
  130. package/dist/strategy/test/TestStrategy.mjs +44 -0
  131. package/dist/strategy/test/TestStrategy.mjs.map +1 -0
  132. package/dist/tests/messenger-mock.cjs +71 -0
  133. package/dist/tests/messenger-mock.cjs.map +1 -0
  134. package/dist/tests/messenger-mock.d.cts +211 -0
  135. package/dist/tests/messenger-mock.d.cts.map +1 -0
  136. package/dist/tests/messenger-mock.d.mts +211 -0
  137. package/dist/tests/messenger-mock.d.mts.map +1 -0
  138. package/dist/tests/messenger-mock.mjs +67 -0
  139. package/dist/tests/messenger-mock.mjs.map +1 -0
  140. package/dist/types.cjs +3 -0
  141. package/dist/types.cjs.map +1 -0
  142. package/dist/types.d.cts +149 -0
  143. package/dist/types.d.cts.map +1 -0
  144. package/dist/types.d.mts +149 -0
  145. package/dist/types.d.mts.map +1 -0
  146. package/dist/types.mjs +2 -0
  147. package/dist/types.mjs.map +1 -0
  148. package/dist/utils/gas.cjs +69 -0
  149. package/dist/utils/gas.cjs.map +1 -0
  150. package/dist/utils/gas.d.cts +26 -0
  151. package/dist/utils/gas.d.cts.map +1 -0
  152. package/dist/utils/gas.d.mts +26 -0
  153. package/dist/utils/gas.d.mts.map +1 -0
  154. package/dist/utils/gas.mjs +64 -0
  155. package/dist/utils/gas.mjs.map +1 -0
  156. package/dist/utils/quotes.cjs +168 -0
  157. package/dist/utils/quotes.cjs.map +1 -0
  158. package/dist/utils/quotes.d.cts +21 -0
  159. package/dist/utils/quotes.d.cts.map +1 -0
  160. package/dist/utils/quotes.d.mts +21 -0
  161. package/dist/utils/quotes.d.mts.map +1 -0
  162. package/dist/utils/quotes.mjs +163 -0
  163. package/dist/utils/quotes.mjs.map +1 -0
  164. package/dist/utils/required-tokens.cjs +179 -0
  165. package/dist/utils/required-tokens.cjs.map +1 -0
  166. package/dist/utils/required-tokens.d.cts +11 -0
  167. package/dist/utils/required-tokens.d.cts.map +1 -0
  168. package/dist/utils/required-tokens.d.mts +11 -0
  169. package/dist/utils/required-tokens.d.mts.map +1 -0
  170. package/dist/utils/required-tokens.mjs +175 -0
  171. package/dist/utils/required-tokens.mjs.map +1 -0
  172. package/dist/utils/source-amounts.cjs +72 -0
  173. package/dist/utils/source-amounts.cjs.map +1 -0
  174. package/dist/utils/source-amounts.d.cts +11 -0
  175. package/dist/utils/source-amounts.d.cts.map +1 -0
  176. package/dist/utils/source-amounts.d.mts +11 -0
  177. package/dist/utils/source-amounts.d.mts.map +1 -0
  178. package/dist/utils/source-amounts.mjs +68 -0
  179. package/dist/utils/source-amounts.mjs.map +1 -0
  180. package/dist/utils/strategy.cjs +39 -0
  181. package/dist/utils/strategy.cjs.map +1 -0
  182. package/dist/utils/strategy.d.cts +19 -0
  183. package/dist/utils/strategy.d.cts.map +1 -0
  184. package/dist/utils/strategy.d.mts +19 -0
  185. package/dist/utils/strategy.d.mts.map +1 -0
  186. package/dist/utils/strategy.mjs +34 -0
  187. package/dist/utils/strategy.mjs.map +1 -0
  188. package/dist/utils/token.cjs +161 -0
  189. package/dist/utils/token.cjs.map +1 -0
  190. package/dist/utils/token.d.cts +53 -0
  191. package/dist/utils/token.d.cts.map +1 -0
  192. package/dist/utils/token.d.mts +53 -0
  193. package/dist/utils/token.d.mts.map +1 -0
  194. package/dist/utils/token.mjs +154 -0
  195. package/dist/utils/token.mjs.map +1 -0
  196. package/dist/utils/totals.cjs +69 -0
  197. package/dist/utils/totals.cjs.map +1 -0
  198. package/dist/utils/totals.d.cts +11 -0
  199. package/dist/utils/totals.d.cts.map +1 -0
  200. package/dist/utils/totals.d.mts +11 -0
  201. package/dist/utils/totals.d.mts.map +1 -0
  202. package/dist/utils/totals.mjs +65 -0
  203. package/dist/utils/totals.mjs.map +1 -0
  204. package/dist/utils/transaction.cjs +132 -0
  205. package/dist/utils/transaction.cjs.map +1 -0
  206. package/dist/utils/transaction.d.cts +42 -0
  207. package/dist/utils/transaction.d.cts.map +1 -0
  208. package/dist/utils/transaction.d.mts +42 -0
  209. package/dist/utils/transaction.d.mts.map +1 -0
  210. package/dist/utils/transaction.mjs +126 -0
  211. package/dist/utils/transaction.mjs.map +1 -0
  212. package/package.json +96 -0
@@ -0,0 +1,52 @@
1
+ import type { Hex } from "@metamask/utils";
2
+ export type RelayQuote = {
3
+ details: {
4
+ currencyIn: {
5
+ amountUsd: string;
6
+ };
7
+ currencyOut: {
8
+ amountFormatted: string;
9
+ amountUsd: string;
10
+ currency: {
11
+ decimals: number;
12
+ };
13
+ minimumAmount: string;
14
+ };
15
+ timeEstimate: number;
16
+ };
17
+ fees: {
18
+ gas: {
19
+ amountUsd: string;
20
+ };
21
+ };
22
+ steps: {
23
+ items: {
24
+ check: {
25
+ endpoint: string;
26
+ method: 'GET' | 'POST';
27
+ };
28
+ data: {
29
+ chainId: number;
30
+ data: Hex;
31
+ from: Hex;
32
+ gas: string;
33
+ maxFeePerGas: string;
34
+ maxPriorityFeePerGas: string;
35
+ to: Hex;
36
+ value: string;
37
+ };
38
+ status: 'complete' | 'incomplete';
39
+ }[];
40
+ kind: 'transaction';
41
+ }[];
42
+ skipTransaction?: boolean;
43
+ };
44
+ export type RelayStatus = {
45
+ status: 'refund' | 'waiting' | 'failure' | 'pending' | 'submitted' | 'success';
46
+ inTxHashes: string[];
47
+ txHashes: string[];
48
+ updatedAt: number;
49
+ originChainId: number;
50
+ destinationChainId: number;
51
+ };
52
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../src/strategy/relay/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAE3C,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE;QACP,UAAU,EAAE;YACV,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,WAAW,EAAE;YACX,eAAe,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE;gBACR,QAAQ,EAAE,MAAM,CAAC;aAClB,CAAC;YACF,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,IAAI,EAAE;QACJ,GAAG,EAAE;YACH,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,KAAK,EAAE;QACL,KAAK,EAAE;YACL,KAAK,EAAE;gBACL,QAAQ,EAAE,MAAM,CAAC;gBACjB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;aACxB,CAAC;YACF,IAAI,EAAE;gBACJ,OAAO,EAAE,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CAAC;gBACV,IAAI,EAAE,GAAG,CAAC;gBACV,GAAG,EAAE,MAAM,CAAC;gBACZ,YAAY,EAAE,MAAM,CAAC;gBACrB,oBAAoB,EAAE,MAAM,CAAC;gBAC7B,EAAE,EAAE,GAAG,CAAC;gBACR,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;YACF,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;SACnC,EAAE,CAAC;QACJ,IAAI,EAAE,aAAa,CAAC;KACrB,EAAE,CAAC;IACJ,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EACF,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../src/strategy/relay/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Hex } from '@metamask/utils';\n\nexport type RelayQuote = {\n details: {\n currencyIn: {\n amountUsd: string;\n };\n currencyOut: {\n amountFormatted: string;\n amountUsd: string;\n currency: {\n decimals: number;\n };\n minimumAmount: string;\n };\n timeEstimate: number;\n };\n fees: {\n gas: {\n amountUsd: string;\n };\n };\n steps: {\n items: {\n check: {\n endpoint: string;\n method: 'GET' | 'POST';\n };\n data: {\n chainId: number;\n data: Hex;\n from: Hex;\n gas: string;\n maxFeePerGas: string;\n maxPriorityFeePerGas: string;\n to: Hex;\n value: string;\n };\n status: 'complete' | 'incomplete';\n }[];\n kind: 'transaction';\n }[];\n skipTransaction?: boolean;\n};\n\nexport type RelayStatus = {\n status:\n | 'refund'\n | 'waiting'\n | 'failure'\n | 'pending'\n | 'submitted'\n | 'success';\n inTxHashes: string[];\n txHashes: string[];\n updatedAt: number;\n originChainId: number;\n destinationChainId: number;\n};\n"]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ 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");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var _TestStrategy_instances, _TestStrategy_timeout;
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TestStrategy = void 0;
10
+ const utils_1 = require("@metamask/utils");
11
+ const __1 = require("../../index.cjs");
12
+ const logger_1 = require("../../logger.cjs");
13
+ const log = (0, utils_1.createModuleLogger)(logger_1.projectLogger, 'test-strategy');
14
+ class TestStrategy {
15
+ constructor() {
16
+ _TestStrategy_instances.add(this);
17
+ }
18
+ async getQuotes(request) {
19
+ const { requests } = request;
20
+ log('Getting quotes', requests);
21
+ await __classPrivateFieldGet(this, _TestStrategy_instances, "m", _TestStrategy_timeout).call(this, 5000);
22
+ return [
23
+ {
24
+ dust: { fiat: '0.12', usd: '0.34' },
25
+ estimatedDuration: 5,
26
+ fees: {
27
+ provider: { fiat: '1.23', usd: '1.23' },
28
+ sourceNetwork: { fiat: '2.34', usd: '2.34' },
29
+ targetNetwork: { fiat: '3.45', usd: '3.45' },
30
+ },
31
+ original: undefined,
32
+ request: requests[0],
33
+ strategy: __1.TransactionPayStrategy.Test,
34
+ },
35
+ ];
36
+ }
37
+ async execute(request) {
38
+ const { quotes } = request;
39
+ log('Executing', quotes);
40
+ await __classPrivateFieldGet(this, _TestStrategy_instances, "m", _TestStrategy_timeout).call(this, 5000);
41
+ return { transactionHash: undefined };
42
+ }
43
+ }
44
+ exports.TestStrategy = TestStrategy;
45
+ _TestStrategy_instances = new WeakSet(), _TestStrategy_timeout = function _TestStrategy_timeout(ms) {
46
+ return new Promise((resolve) => setTimeout(resolve, ms));
47
+ };
48
+ //# sourceMappingURL=TestStrategy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestStrategy.cjs","sourceRoot":"","sources":["../../../src/strategy/test/TestStrategy.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAqD;AAErD,uCAA+C;AAC/C,6CAA6C;AAQ7C,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAAC,sBAAa,EAAE,eAAe,CAAC,CAAC;AAE/D,MAAa,YAAY;IAAzB;;IAuCA,CAAC;IAtCC,KAAK,CAAC,SAAS,CACb,OAAoC;QAEpC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE7B,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAEhC,MAAM,uBAAA,IAAI,sDAAS,MAAb,IAAI,EAAU,IAAI,CAAC,CAAC;QAE1B,OAAO;YACL;gBACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;gBACnC,iBAAiB,EAAE,CAAC;gBACpB,IAAI,EAAE;oBACJ,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;oBACvC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;oBAC5C,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;iBAC7C;gBACD,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACpB,QAAQ,EAAE,0BAAsB,CAAC,IAAI;aACtC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAwC;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE3B,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEzB,MAAM,uBAAA,IAAI,sDAAS,MAAb,IAAI,EAAU,IAAI,CAAC,CAAC;QAE1B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;CAKF;AAvCD,oCAuCC;gGAHU,EAAU;IACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC","sourcesContent":["import { createModuleLogger } from '@metamask/utils';\n\nimport { TransactionPayStrategy } from '../..';\nimport { projectLogger } from '../../logger';\nimport type {\n PayStrategy,\n PayStrategyExecuteRequest,\n PayStrategyGetQuotesRequest,\n TransactionPayQuote,\n} from '../../types';\n\nconst log = createModuleLogger(projectLogger, 'test-strategy');\n\nexport class TestStrategy implements PayStrategy<void> {\n async getQuotes(\n request: PayStrategyGetQuotesRequest,\n ): Promise<TransactionPayQuote<void>[]> {\n const { requests } = request;\n\n log('Getting quotes', requests);\n\n await this.#timeout(5000);\n\n return [\n {\n dust: { fiat: '0.12', usd: '0.34' },\n estimatedDuration: 5,\n fees: {\n provider: { fiat: '1.23', usd: '1.23' },\n sourceNetwork: { fiat: '2.34', usd: '2.34' },\n targetNetwork: { fiat: '3.45', usd: '3.45' },\n },\n original: undefined,\n request: requests[0],\n strategy: TransactionPayStrategy.Test,\n },\n ];\n }\n\n async execute(request: PayStrategyExecuteRequest<void>) {\n const { quotes } = request;\n\n log('Executing', quotes);\n\n await this.#timeout(5000);\n\n return { transactionHash: undefined };\n }\n\n #timeout(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import type { PayStrategy, PayStrategyExecuteRequest, PayStrategyGetQuotesRequest, TransactionPayQuote } from "../../types.cjs";
2
+ export declare class TestStrategy implements PayStrategy<void> {
3
+ #private;
4
+ getQuotes(request: PayStrategyGetQuotesRequest): Promise<TransactionPayQuote<void>[]>;
5
+ execute(request: PayStrategyExecuteRequest<void>): Promise<{
6
+ transactionHash: undefined;
7
+ }>;
8
+ }
9
+ //# sourceMappingURL=TestStrategy.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestStrategy.d.cts","sourceRoot":"","sources":["../../../src/strategy/test/TestStrategy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,EACpB,wBAAoB;AAIrB,qBAAa,YAAa,YAAW,WAAW,CAAC,IAAI,CAAC;;IAC9C,SAAS,CACb,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;IAuBjC,OAAO,CAAC,OAAO,EAAE,yBAAyB,CAAC,IAAI,CAAC;;;CAavD"}
@@ -0,0 +1,9 @@
1
+ import type { PayStrategy, PayStrategyExecuteRequest, PayStrategyGetQuotesRequest, TransactionPayQuote } from "../../types.mjs";
2
+ export declare class TestStrategy implements PayStrategy<void> {
3
+ #private;
4
+ getQuotes(request: PayStrategyGetQuotesRequest): Promise<TransactionPayQuote<void>[]>;
5
+ execute(request: PayStrategyExecuteRequest<void>): Promise<{
6
+ transactionHash: undefined;
7
+ }>;
8
+ }
9
+ //# sourceMappingURL=TestStrategy.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestStrategy.d.mts","sourceRoot":"","sources":["../../../src/strategy/test/TestStrategy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,EACpB,wBAAoB;AAIrB,qBAAa,YAAa,YAAW,WAAW,CAAC,IAAI,CAAC;;IAC9C,SAAS,CACb,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;IAuBjC,OAAO,CAAC,OAAO,EAAE,yBAAyB,CAAC,IAAI,CAAC;;;CAavD"}
@@ -0,0 +1,44 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ 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");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var _TestStrategy_instances, _TestStrategy_timeout;
7
+ import { createModuleLogger } from "@metamask/utils";
8
+ import { TransactionPayStrategy } from "../../index.mjs";
9
+ import { projectLogger } from "../../logger.mjs";
10
+ const log = createModuleLogger(projectLogger, 'test-strategy');
11
+ export class TestStrategy {
12
+ constructor() {
13
+ _TestStrategy_instances.add(this);
14
+ }
15
+ async getQuotes(request) {
16
+ const { requests } = request;
17
+ log('Getting quotes', requests);
18
+ await __classPrivateFieldGet(this, _TestStrategy_instances, "m", _TestStrategy_timeout).call(this, 5000);
19
+ return [
20
+ {
21
+ dust: { fiat: '0.12', usd: '0.34' },
22
+ estimatedDuration: 5,
23
+ fees: {
24
+ provider: { fiat: '1.23', usd: '1.23' },
25
+ sourceNetwork: { fiat: '2.34', usd: '2.34' },
26
+ targetNetwork: { fiat: '3.45', usd: '3.45' },
27
+ },
28
+ original: undefined,
29
+ request: requests[0],
30
+ strategy: TransactionPayStrategy.Test,
31
+ },
32
+ ];
33
+ }
34
+ async execute(request) {
35
+ const { quotes } = request;
36
+ log('Executing', quotes);
37
+ await __classPrivateFieldGet(this, _TestStrategy_instances, "m", _TestStrategy_timeout).call(this, 5000);
38
+ return { transactionHash: undefined };
39
+ }
40
+ }
41
+ _TestStrategy_instances = new WeakSet(), _TestStrategy_timeout = function _TestStrategy_timeout(ms) {
42
+ return new Promise((resolve) => setTimeout(resolve, ms));
43
+ };
44
+ //# sourceMappingURL=TestStrategy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestStrategy.mjs","sourceRoot":"","sources":["../../../src/strategy/test/TestStrategy.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB;AAErD,OAAO,EAAE,sBAAsB,EAAE,wBAAc;AAC/C,OAAO,EAAE,aAAa,EAAE,yBAAqB;AAQ7C,MAAM,GAAG,GAAG,kBAAkB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AAE/D,MAAM,OAAO,YAAY;IAAzB;;IAuCA,CAAC;IAtCC,KAAK,CAAC,SAAS,CACb,OAAoC;QAEpC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE7B,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAEhC,MAAM,uBAAA,IAAI,sDAAS,MAAb,IAAI,EAAU,IAAI,CAAC,CAAC;QAE1B,OAAO;YACL;gBACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;gBACnC,iBAAiB,EAAE,CAAC;gBACpB,IAAI,EAAE;oBACJ,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;oBACvC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;oBAC5C,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;iBAC7C;gBACD,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACpB,QAAQ,EAAE,sBAAsB,CAAC,IAAI;aACtC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAwC;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE3B,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEzB,MAAM,uBAAA,IAAI,sDAAS,MAAb,IAAI,EAAU,IAAI,CAAC,CAAC;QAE1B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;CAKF;gGAHU,EAAU;IACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC","sourcesContent":["import { createModuleLogger } from '@metamask/utils';\n\nimport { TransactionPayStrategy } from '../..';\nimport { projectLogger } from '../../logger';\nimport type {\n PayStrategy,\n PayStrategyExecuteRequest,\n PayStrategyGetQuotesRequest,\n TransactionPayQuote,\n} from '../../types';\n\nconst log = createModuleLogger(projectLogger, 'test-strategy');\n\nexport class TestStrategy implements PayStrategy<void> {\n async getQuotes(\n request: PayStrategyGetQuotesRequest,\n ): Promise<TransactionPayQuote<void>[]> {\n const { requests } = request;\n\n log('Getting quotes', requests);\n\n await this.#timeout(5000);\n\n return [\n {\n dust: { fiat: '0.12', usd: '0.34' },\n estimatedDuration: 5,\n fees: {\n provider: { fiat: '1.23', usd: '1.23' },\n sourceNetwork: { fiat: '2.34', usd: '2.34' },\n targetNetwork: { fiat: '3.45', usd: '3.45' },\n },\n original: undefined,\n request: requests[0],\n strategy: TransactionPayStrategy.Test,\n },\n ];\n }\n\n async execute(request: PayStrategyExecuteRequest<void>) {\n const { quotes } = request;\n\n log('Executing', quotes);\n\n await this.#timeout(5000);\n\n return { transactionHash: undefined };\n }\n\n #timeout(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n"]}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMessengerMock = void 0;
4
+ const base_controller_1 = require("@metamask/base-controller");
5
+ /**
6
+ * Creates a mock controller messenger for testing.
7
+ *
8
+ * @returns The mock messenger and associated mock functions.
9
+ */
10
+ function getMessengerMock() {
11
+ const getControllerStateMock = jest.fn();
12
+ const getStrategyMock = jest.fn();
13
+ const getTransactionControllerStateMock = jest.fn();
14
+ const addTransactionMock = jest.fn();
15
+ const findNetworkClientIdByChainIdMock = jest.fn();
16
+ const fetchQuotesMock = jest.fn();
17
+ const getRemoteFeatureFlagControllerStateMock = jest.fn();
18
+ const getGasFeeControllerStateMock = jest.fn();
19
+ const submitTransactionMock = jest.fn();
20
+ const updateTransactionMock = jest.fn();
21
+ const getBridgeStatusControllerStateMock = jest.fn();
22
+ const getTokensControllerStateMock = jest.fn();
23
+ const getTokenBalanceControllerStateMock = jest.fn();
24
+ const getTokenRatesControllerStateMock = jest.fn();
25
+ const getCurrencyRateControllerStateMock = jest.fn();
26
+ const getAccountTrackerControllerStateMock = jest.fn();
27
+ const getNetworkClientByIdMock = jest.fn();
28
+ const baseMessenger = new base_controller_1.Messenger();
29
+ baseMessenger.registerActionHandler('TransactionPayController:getState', getControllerStateMock);
30
+ baseMessenger.registerActionHandler('TransactionPayController:getStrategy', getStrategyMock);
31
+ baseMessenger.registerActionHandler('TransactionController:getState', getTransactionControllerStateMock);
32
+ baseMessenger.registerActionHandler('TransactionController:addTransaction', addTransactionMock);
33
+ baseMessenger.registerActionHandler('NetworkController:findNetworkClientIdByChainId', findNetworkClientIdByChainIdMock);
34
+ baseMessenger.registerActionHandler('BridgeController:fetchQuotes', fetchQuotesMock);
35
+ baseMessenger.registerActionHandler('RemoteFeatureFlagController:getState', getRemoteFeatureFlagControllerStateMock);
36
+ baseMessenger.registerActionHandler('BridgeStatusController:submitTx', submitTransactionMock);
37
+ baseMessenger.registerActionHandler('GasFeeController:getState', getGasFeeControllerStateMock);
38
+ baseMessenger.registerActionHandler('TransactionController:updateTransaction', updateTransactionMock);
39
+ baseMessenger.registerActionHandler('BridgeStatusController:getState', getBridgeStatusControllerStateMock);
40
+ baseMessenger.registerActionHandler('TokensController:getState', getTokensControllerStateMock);
41
+ baseMessenger.registerActionHandler('TokenBalancesController:getState', getTokenBalanceControllerStateMock);
42
+ baseMessenger.registerActionHandler('TokenRatesController:getState', getTokenRatesControllerStateMock);
43
+ baseMessenger.registerActionHandler('AccountTrackerController:getState', getAccountTrackerControllerStateMock);
44
+ baseMessenger.registerActionHandler('CurrencyRateController:getState', getCurrencyRateControllerStateMock);
45
+ baseMessenger.registerActionHandler('NetworkController:getNetworkClientById', getNetworkClientByIdMock);
46
+ const messenger = baseMessenger;
47
+ const publish = baseMessenger.publish.bind(baseMessenger);
48
+ return {
49
+ addTransactionMock,
50
+ fetchQuotesMock,
51
+ findNetworkClientIdByChainIdMock,
52
+ getAccountTrackerControllerStateMock,
53
+ getBridgeStatusControllerStateMock,
54
+ getControllerStateMock,
55
+ getCurrencyRateControllerStateMock,
56
+ getGasFeeControllerStateMock,
57
+ getNetworkClientByIdMock,
58
+ getRemoteFeatureFlagControllerStateMock,
59
+ getStrategyMock,
60
+ getTokenBalanceControllerStateMock,
61
+ getTokenRatesControllerStateMock,
62
+ getTokensControllerStateMock,
63
+ getTransactionControllerStateMock,
64
+ messenger,
65
+ publish,
66
+ submitTransactionMock,
67
+ updateTransactionMock,
68
+ };
69
+ }
70
+ exports.getMessengerMock = getMessengerMock;
71
+ //# sourceMappingURL=messenger-mock.cjs.map
@@ -0,0 +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 { Messenger } from '@metamask/base-controller';\nimport type { BridgeStatusControllerGetStateAction } from '@metamask/bridge-status-controller';\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 TransactionControllerGetStateAction,\n} from '@metamask/transaction-controller';\nimport type { TransactionControllerUpdateTransactionAction } from '@metamask/transaction-controller';\n\nimport type { TransactionPayControllerMessenger } from '..';\nimport type { BridgeStatusControllerSubmitTxAction } from '../../../bridge-status-controller/src/types';\nimport type {\n TransactionPayControllerActions,\n TransactionPayControllerEvents,\n TransactionPayControllerGetStrategyAction,\n} from '../types';\nimport {\n type AllowedActions,\n type AllowedEvents,\n type TransactionPayControllerGetStateAction,\n} from '../types';\n\n/**\n * Creates a mock controller messenger for testing.\n *\n * @returns The mock messenger and associated mock functions.\n */\nexport function getMessengerMock() {\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 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 baseMessenger = new Messenger<\n AllowedActions | TransactionPayControllerActions,\n AllowedEvents | TransactionPayControllerEvents\n >();\n\n baseMessenger.registerActionHandler(\n 'TransactionPayController:getState',\n getControllerStateMock,\n );\n\n baseMessenger.registerActionHandler(\n 'TransactionPayController:getStrategy',\n getStrategyMock,\n );\n\n baseMessenger.registerActionHandler(\n 'TransactionController:getState',\n getTransactionControllerStateMock,\n );\n\n baseMessenger.registerActionHandler(\n 'TransactionController:addTransaction',\n addTransactionMock,\n );\n\n baseMessenger.registerActionHandler(\n 'NetworkController:findNetworkClientIdByChainId',\n findNetworkClientIdByChainIdMock,\n );\n\n baseMessenger.registerActionHandler(\n 'BridgeController:fetchQuotes',\n fetchQuotesMock,\n );\n\n baseMessenger.registerActionHandler(\n 'RemoteFeatureFlagController:getState',\n getRemoteFeatureFlagControllerStateMock,\n );\n\n baseMessenger.registerActionHandler(\n 'BridgeStatusController:submitTx',\n submitTransactionMock,\n );\n\n baseMessenger.registerActionHandler(\n 'GasFeeController:getState',\n getGasFeeControllerStateMock,\n );\n\n baseMessenger.registerActionHandler(\n 'TransactionController:updateTransaction',\n updateTransactionMock,\n );\n\n baseMessenger.registerActionHandler(\n 'BridgeStatusController:getState',\n getBridgeStatusControllerStateMock,\n );\n\n baseMessenger.registerActionHandler(\n 'TokensController:getState',\n getTokensControllerStateMock,\n );\n\n baseMessenger.registerActionHandler(\n 'TokenBalancesController:getState',\n getTokenBalanceControllerStateMock,\n );\n\n baseMessenger.registerActionHandler(\n 'TokenRatesController:getState',\n getTokenRatesControllerStateMock,\n );\n\n baseMessenger.registerActionHandler(\n 'AccountTrackerController:getState',\n getAccountTrackerControllerStateMock,\n );\n\n baseMessenger.registerActionHandler(\n 'CurrencyRateController:getState',\n getCurrencyRateControllerStateMock,\n );\n\n baseMessenger.registerActionHandler(\n 'NetworkController:getNetworkClientById',\n getNetworkClientByIdMock,\n );\n\n const messenger: TransactionPayControllerMessenger = baseMessenger as never;\n\n const publish = baseMessenger.publish.bind(baseMessenger);\n\n return {\n addTransactionMock,\n fetchQuotesMock,\n findNetworkClientIdByChainIdMock,\n getAccountTrackerControllerStateMock,\n getBridgeStatusControllerStateMock,\n getControllerStateMock,\n getCurrencyRateControllerStateMock,\n getGasFeeControllerStateMock,\n getNetworkClientByIdMock,\n getRemoteFeatureFlagControllerStateMock,\n getStrategyMock,\n getTokenBalanceControllerStateMock,\n getTokenRatesControllerStateMock,\n getTokensControllerStateMock,\n getTransactionControllerStateMock,\n messenger,\n publish,\n submitTransactionMock,\n updateTransactionMock,\n };\n}\n"]}
@@ -0,0 +1,211 @@
1
+ /// <reference types="jest" />
2
+ import type { TransactionPayControllerMessenger } from "../index.cjs";
3
+ /**
4
+ * Creates a mock controller messenger for testing.
5
+ *
6
+ * @returns The mock messenger and associated mock functions.
7
+ */
8
+ export declare function getMessengerMock(): {
9
+ addTransactionMock: jest.MockedFn<(txParams: import("@metamask/transaction-controller").TransactionParams, options: import("@metamask/transaction-controller").AddTransactionOptions) => Promise<import("@metamask/transaction-controller").Result>>;
10
+ fetchQuotesMock: jest.Mock<any, any>;
11
+ findNetworkClientIdByChainIdMock: jest.MockedFn<(chainId: `0x${string}`) => string>;
12
+ getAccountTrackerControllerStateMock: jest.MockedFn<() => import("@metamask/assets-controllers").AccountTrackerControllerState>;
13
+ getBridgeStatusControllerStateMock: jest.MockedFn<() => import("@metamask/bridge-status-controller").BridgeStatusControllerState>;
14
+ getControllerStateMock: jest.MockedFn<() => import("../index.cjs").TransactionPayControllerState>;
15
+ getCurrencyRateControllerStateMock: jest.Mock<any, any>;
16
+ getGasFeeControllerStateMock: jest.Mock<any, any>;
17
+ getNetworkClientByIdMock: jest.MockedFn<{
18
+ (infuraNetworkClientId: import("@metamask/controller-utils").InfuraNetworkType): import("@metamask/network-controller").AutoManagedNetworkClient<import("@metamask/network-controller").InfuraNetworkClientConfiguration>;
19
+ (customNetworkClientId: string): import("@metamask/network-controller").AutoManagedNetworkClient<import("@metamask/network-controller").CustomNetworkClientConfiguration>;
20
+ }>;
21
+ getRemoteFeatureFlagControllerStateMock: jest.MockedFn<() => import("@metamask/remote-feature-flag-controller").RemoteFeatureFlagControllerState>;
22
+ getStrategyMock: jest.MockedFn<(transaction: import("@metamask/transaction-controller").TransactionMeta) => Promise<import("../index.cjs").TransactionPayStrategy>>;
23
+ getTokenBalanceControllerStateMock: jest.MockedFn<() => import("@metamask/assets-controllers").TokenBalancesControllerState>;
24
+ getTokenRatesControllerStateMock: jest.MockedFn<() => import("@metamask/assets-controllers").TokenRatesControllerState>;
25
+ getTokensControllerStateMock: jest.MockedFn<() => import("@metamask/assets-controllers").TokensControllerState>;
26
+ getTransactionControllerStateMock: jest.MockedFn<() => import("@metamask/transaction-controller").TransactionControllerState>;
27
+ messenger: TransactionPayControllerMessenger;
28
+ publish: <EventType extends "TransactionController:stateChange" | "TransactionController:unapprovedTransactionAdded" | "BridgeStatusController:stateChange" | "TransactionPayController:stateChange">(eventType: EventType, ...payload: import("@metamask/base-controller").ExtractEventPayload<import("@metamask/transaction-controller").TransactionControllerStateChangeEvent, EventType> | import("@metamask/base-controller").ExtractEventPayload<import("@metamask/transaction-controller").TransactionControllerUnapprovedTransactionAddedEvent, EventType> | import("@metamask/base-controller").ExtractEventPayload<import("@metamask/bridge-status-controller").BridgeStatusControllerStateChangeEvent, EventType> | import("@metamask/base-controller").ExtractEventPayload<import("../index.cjs").TransactionPayControllerStateChangeEvent, EventType>) => void;
29
+ submitTransactionMock: jest.MockedFunction<(accountAddress: string, quoteResponse: {
30
+ quote: {
31
+ requestId: string;
32
+ srcChainId: number;
33
+ destChainId: number;
34
+ srcAsset: {
35
+ symbol: string;
36
+ address: string;
37
+ name: string;
38
+ chainId: number;
39
+ decimals: number;
40
+ assetId: `${string}:${string}/${string}:${string}`;
41
+ iconUrl?: string | null | undefined;
42
+ icon?: string | null | undefined;
43
+ };
44
+ destAsset: {
45
+ symbol: string;
46
+ address: string;
47
+ name: string;
48
+ chainId: number;
49
+ decimals: number;
50
+ assetId: `${string}:${string}/${string}:${string}`;
51
+ iconUrl?: string | null | undefined;
52
+ icon?: string | null | undefined;
53
+ };
54
+ srcTokenAmount: string;
55
+ destTokenAmount: string;
56
+ minDestTokenAmount: string;
57
+ feeData: {
58
+ metabridge: {
59
+ amount: string;
60
+ asset: {
61
+ symbol: string;
62
+ address: string;
63
+ name: string;
64
+ chainId: number;
65
+ decimals: number;
66
+ assetId: `${string}:${string}/${string}:${string}`;
67
+ iconUrl?: string | null | undefined;
68
+ icon?: string | null | undefined;
69
+ };
70
+ };
71
+ txFee?: ({
72
+ amount: string;
73
+ asset: {
74
+ symbol: string;
75
+ address: string;
76
+ name: string;
77
+ chainId: number;
78
+ decimals: number;
79
+ assetId: `${string}:${string}/${string}:${string}`;
80
+ iconUrl?: string | null | undefined;
81
+ icon?: string | null | undefined;
82
+ };
83
+ } & {
84
+ maxPriorityFeePerGas: string;
85
+ maxFeePerGas: string;
86
+ }) | undefined;
87
+ };
88
+ bridgeId: string;
89
+ bridges: string[];
90
+ steps: {
91
+ action: import("@metamask/bridge-controller").ActionTypes;
92
+ protocol: {
93
+ name: string;
94
+ displayName?: string | undefined;
95
+ icon?: string | undefined;
96
+ };
97
+ srcChainId: number;
98
+ srcAsset: {
99
+ symbol: string;
100
+ address: string;
101
+ name: string;
102
+ chainId: number;
103
+ decimals: number;
104
+ assetId: `${string}:${string}/${string}:${string}`;
105
+ iconUrl?: string | null | undefined;
106
+ icon?: string | null | undefined;
107
+ };
108
+ destAsset: {
109
+ symbol: string;
110
+ address: string;
111
+ name: string;
112
+ chainId: number;
113
+ decimals: number;
114
+ assetId: `${string}:${string}/${string}:${string}`;
115
+ iconUrl?: string | null | undefined;
116
+ icon?: string | null | undefined;
117
+ };
118
+ srcAmount: string;
119
+ destAmount: string;
120
+ destChainId?: number | undefined;
121
+ }[];
122
+ refuel?: {
123
+ action: import("@metamask/bridge-controller").ActionTypes;
124
+ protocol: {
125
+ name: string;
126
+ displayName?: string | undefined;
127
+ icon?: string | undefined;
128
+ };
129
+ srcChainId: number;
130
+ srcAsset: {
131
+ symbol: string;
132
+ address: string;
133
+ name: string;
134
+ chainId: number;
135
+ decimals: number;
136
+ assetId: `${string}:${string}/${string}:${string}`;
137
+ iconUrl?: string | null | undefined;
138
+ icon?: string | null | undefined;
139
+ };
140
+ destAsset: {
141
+ symbol: string;
142
+ address: string;
143
+ name: string;
144
+ chainId: number;
145
+ decimals: number;
146
+ assetId: `${string}:${string}/${string}:${string}`;
147
+ iconUrl?: string | null | undefined;
148
+ icon?: string | null | undefined;
149
+ };
150
+ srcAmount: string;
151
+ destAmount: string;
152
+ destChainId?: number | undefined;
153
+ } | undefined;
154
+ gasIncluded?: boolean | undefined;
155
+ gasIncluded7702?: boolean | undefined;
156
+ priceData?: {
157
+ totalFromAmountUsd?: string | undefined;
158
+ totalToAmountUsd?: string | undefined;
159
+ priceImpact?: string | undefined;
160
+ totalFeeAmountUsd?: string | undefined;
161
+ } | undefined;
162
+ };
163
+ estimatedProcessingTimeInSeconds: number;
164
+ trade: string | {
165
+ data: string;
166
+ value: string;
167
+ to: string;
168
+ from: string;
169
+ gasLimit: number | null;
170
+ chainId: number;
171
+ effectiveGas?: number | undefined;
172
+ } | {
173
+ unsignedPsbtBase64: string;
174
+ inputsToSign: {}[] | null;
175
+ };
176
+ approval?: {
177
+ data: string;
178
+ value: string;
179
+ to: string;
180
+ from: string;
181
+ gasLimit: number | null;
182
+ chainId: number;
183
+ effectiveGas?: number | undefined;
184
+ } | undefined;
185
+ } & {
186
+ trade: string | {
187
+ data: string;
188
+ value: string;
189
+ to: string;
190
+ from: string;
191
+ gasLimit: number | null;
192
+ chainId: number;
193
+ effectiveGas?: number | undefined;
194
+ } | {
195
+ unsignedPsbtBase64: string;
196
+ inputsToSign: {}[] | null;
197
+ };
198
+ approval?: {
199
+ data: string;
200
+ value: string;
201
+ to: string;
202
+ from: string;
203
+ gasLimit: number | null;
204
+ chainId: number;
205
+ effectiveGas?: number | undefined;
206
+ } | undefined;
207
+ featureId?: import("@metamask/bridge-controller").FeatureId | undefined;
208
+ } & Partial<import("@metamask/bridge-controller").QuoteMetadata>, isStxEnabledOnClient: boolean) => Promise<import("@metamask/transaction-controller").TransactionMeta & Partial<import("../../../bridge-status-controller/src/types.cjs").SolanaTransactionMeta>>>;
209
+ updateTransactionMock: jest.MockedFn<(transactionMeta: import("@metamask/transaction-controller").TransactionMeta, note: string) => void>;
210
+ };
211
+ //# sourceMappingURL=messenger-mock.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messenger-mock.d.cts","sourceRoot":"","sources":["../../src/tests/messenger-mock.ts"],"names":[],"mappings":";AAeA,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAW;AAa5D;;;;GAIG;AACH,wBAAgB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkL/B"}