@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,211 @@
1
+ /// <reference types="jest" />
2
+ import type { TransactionPayControllerMessenger } from "../index.mjs";
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.mjs").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.mjs").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.mjs").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.mjs").SolanaTransactionMeta>>>;
209
+ updateTransactionMock: jest.MockedFn<(transactionMeta: import("@metamask/transaction-controller").TransactionMeta, note: string) => void>;
210
+ };
211
+ //# sourceMappingURL=messenger-mock.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messenger-mock.d.mts","sourceRoot":"","sources":["../../src/tests/messenger-mock.ts"],"names":[],"mappings":";AAeA,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAW;AAa5D;;;;GAIG;AACH,wBAAgB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkL/B"}
@@ -0,0 +1,67 @@
1
+ import { Messenger } from "@metamask/base-controller";
2
+ /**
3
+ * Creates a mock controller messenger for testing.
4
+ *
5
+ * @returns The mock messenger and associated mock functions.
6
+ */
7
+ export function getMessengerMock() {
8
+ const getControllerStateMock = jest.fn();
9
+ const getStrategyMock = jest.fn();
10
+ const getTransactionControllerStateMock = jest.fn();
11
+ const addTransactionMock = jest.fn();
12
+ const findNetworkClientIdByChainIdMock = jest.fn();
13
+ const fetchQuotesMock = jest.fn();
14
+ const getRemoteFeatureFlagControllerStateMock = jest.fn();
15
+ const getGasFeeControllerStateMock = jest.fn();
16
+ const submitTransactionMock = jest.fn();
17
+ const updateTransactionMock = jest.fn();
18
+ const getBridgeStatusControllerStateMock = jest.fn();
19
+ const getTokensControllerStateMock = jest.fn();
20
+ const getTokenBalanceControllerStateMock = jest.fn();
21
+ const getTokenRatesControllerStateMock = jest.fn();
22
+ const getCurrencyRateControllerStateMock = jest.fn();
23
+ const getAccountTrackerControllerStateMock = jest.fn();
24
+ const getNetworkClientByIdMock = jest.fn();
25
+ const baseMessenger = new Messenger();
26
+ baseMessenger.registerActionHandler('TransactionPayController:getState', getControllerStateMock);
27
+ baseMessenger.registerActionHandler('TransactionPayController:getStrategy', getStrategyMock);
28
+ baseMessenger.registerActionHandler('TransactionController:getState', getTransactionControllerStateMock);
29
+ baseMessenger.registerActionHandler('TransactionController:addTransaction', addTransactionMock);
30
+ baseMessenger.registerActionHandler('NetworkController:findNetworkClientIdByChainId', findNetworkClientIdByChainIdMock);
31
+ baseMessenger.registerActionHandler('BridgeController:fetchQuotes', fetchQuotesMock);
32
+ baseMessenger.registerActionHandler('RemoteFeatureFlagController:getState', getRemoteFeatureFlagControllerStateMock);
33
+ baseMessenger.registerActionHandler('BridgeStatusController:submitTx', submitTransactionMock);
34
+ baseMessenger.registerActionHandler('GasFeeController:getState', getGasFeeControllerStateMock);
35
+ baseMessenger.registerActionHandler('TransactionController:updateTransaction', updateTransactionMock);
36
+ baseMessenger.registerActionHandler('BridgeStatusController:getState', getBridgeStatusControllerStateMock);
37
+ baseMessenger.registerActionHandler('TokensController:getState', getTokensControllerStateMock);
38
+ baseMessenger.registerActionHandler('TokenBalancesController:getState', getTokenBalanceControllerStateMock);
39
+ baseMessenger.registerActionHandler('TokenRatesController:getState', getTokenRatesControllerStateMock);
40
+ baseMessenger.registerActionHandler('AccountTrackerController:getState', getAccountTrackerControllerStateMock);
41
+ baseMessenger.registerActionHandler('CurrencyRateController:getState', getCurrencyRateControllerStateMock);
42
+ baseMessenger.registerActionHandler('NetworkController:getNetworkClientById', getNetworkClientByIdMock);
43
+ const messenger = baseMessenger;
44
+ const publish = baseMessenger.publish.bind(baseMessenger);
45
+ return {
46
+ addTransactionMock,
47
+ fetchQuotesMock,
48
+ findNetworkClientIdByChainIdMock,
49
+ getAccountTrackerControllerStateMock,
50
+ getBridgeStatusControllerStateMock,
51
+ getControllerStateMock,
52
+ getCurrencyRateControllerStateMock,
53
+ getGasFeeControllerStateMock,
54
+ getNetworkClientByIdMock,
55
+ getRemoteFeatureFlagControllerStateMock,
56
+ getStrategyMock,
57
+ getTokenBalanceControllerStateMock,
58
+ getTokenRatesControllerStateMock,
59
+ getTokensControllerStateMock,
60
+ getTransactionControllerStateMock,
61
+ messenger,
62
+ publish,
63
+ submitTransactionMock,
64
+ updateTransactionMock,
65
+ };
66
+ }
67
+ //# sourceMappingURL=messenger-mock.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messenger-mock.mjs","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"]}
package/dist/types.cjs ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n CurrencyRateControllerActions,\n TokenBalancesControllerGetStateAction,\n} from '@metamask/assets-controllers';\nimport type { TokenListControllerActions } from '@metamask/assets-controllers';\nimport type { TokenRatesControllerGetStateAction } from '@metamask/assets-controllers';\nimport type { TokensControllerGetStateAction } from '@metamask/assets-controllers';\nimport type { AccountTrackerControllerGetStateAction } from '@metamask/assets-controllers';\nimport type { RestrictedMessenger } from '@metamask/base-controller';\nimport type { ControllerStateChangeEvent } from '@metamask/base-controller';\nimport type { ControllerGetStateAction } from '@metamask/base-controller';\nimport type { BridgeControllerActions } from '@metamask/bridge-controller';\nimport type { BridgeStatusControllerStateChangeEvent } from '@metamask/bridge-status-controller';\nimport type { BridgeStatusControllerActions } from '@metamask/bridge-status-controller';\nimport type { GasFeeControllerActions } from '@metamask/gas-fee-controller';\nimport type { NetworkControllerFindNetworkClientIdByChainIdAction } from '@metamask/network-controller';\nimport type { NetworkControllerGetNetworkClientByIdAction } from '@metamask/network-controller';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport type { TransactionControllerUnapprovedTransactionAddedEvent } from '@metamask/transaction-controller';\nimport type { TransactionControllerGetStateAction } from '@metamask/transaction-controller';\nimport type { TransactionControllerStateChangeEvent } from '@metamask/transaction-controller';\nimport type { TransactionMeta } from '@metamask/transaction-controller';\nimport type { TransactionControllerAddTransactionAction } from '@metamask/transaction-controller';\nimport type { TransactionControllerUpdateTransactionAction } from '@metamask/transaction-controller';\nimport type { BatchTransaction } from '@metamask/transaction-controller';\nimport type { Hex, Json } from '@metamask/utils';\nimport type { Draft } from 'immer';\n\nimport type { CONTROLLER_NAME, TransactionPayStrategy } from './constants';\n\nexport type AllowedActions =\n | AccountTrackerControllerGetStateAction\n | BridgeControllerActions\n | BridgeStatusControllerActions\n | CurrencyRateControllerActions\n | GasFeeControllerActions\n | NetworkControllerFindNetworkClientIdByChainIdAction\n | NetworkControllerGetNetworkClientByIdAction\n | RemoteFeatureFlagControllerGetStateAction\n | TokenBalancesControllerGetStateAction\n | TokenListControllerActions\n | TokenRatesControllerGetStateAction\n | TokensControllerGetStateAction\n | TransactionControllerAddTransactionAction\n | TransactionControllerGetStateAction\n | TransactionControllerUpdateTransactionAction;\n\nexport type AllowedEvents =\n | BridgeStatusControllerStateChangeEvent\n | TransactionControllerStateChangeEvent\n | TransactionControllerUnapprovedTransactionAddedEvent;\n\nexport type TransactionPayControllerGetStateAction = ControllerGetStateAction<\n typeof CONTROLLER_NAME,\n TransactionPayControllerState\n>;\n\nexport type TransactionPayControllerGetStrategyAction = {\n type: `${typeof CONTROLLER_NAME}:getStrategy`;\n handler: (transaction: TransactionMeta) => Promise<TransactionPayStrategy>;\n};\n\nexport type TransactionPayControllerStateChangeEvent =\n ControllerStateChangeEvent<\n typeof CONTROLLER_NAME,\n TransactionPayControllerState\n >;\n\nexport type TransactionPayControllerActions =\n | TransactionPayControllerGetStateAction\n | TransactionPayControllerGetStrategyAction;\n\nexport type TransactionPayControllerEvents =\n TransactionPayControllerStateChangeEvent;\n\nexport type TransactionPayControllerMessenger = RestrictedMessenger<\n typeof CONTROLLER_NAME,\n TransactionPayControllerActions | AllowedActions,\n TransactionPayControllerEvents | AllowedEvents,\n AllowedActions['type'],\n AllowedEvents['type']\n>;\n\nexport type TransactionPayControllerOptions = {\n getStrategy?: (\n transaction: TransactionMeta,\n ) => Promise<TransactionPayStrategy>;\n messenger: TransactionPayControllerMessenger;\n state?: Partial<TransactionPayControllerState>;\n};\n\nexport type TransactionPayControllerState = {\n transactionData: Record<string, TransactionData>;\n};\n\nexport type TransactionData = {\n isLoading: boolean;\n paymentToken?: TransactionPaymentToken;\n quotes?: TransactionPayQuote<Json>[];\n quotesLastUpdated?: number;\n sourceAmounts?: TransactionPaySourceAmount[];\n tokens: TransactionPayRequiredToken[];\n totals?: TransactionPayTotals;\n};\n\nexport type TransactionPayRequiredToken = {\n address: Hex;\n allowUnderMinimum: boolean;\n amountFiat: string;\n amountHuman: string;\n amountRaw: string;\n amountUsd: string;\n balanceFiat: string;\n balanceHuman: string;\n balanceRaw: string;\n balanceUsd: string;\n chainId: Hex;\n decimals: number;\n skipIfBalance: boolean;\n symbol: string;\n};\n\nexport type TransactionPaySourceAmount = {\n sourceAmountHuman: string;\n sourceAmountRaw: string;\n targetTokenAddress: Hex;\n};\n\nexport type TransactionPaymentToken = {\n address: Hex;\n balanceFiat: string;\n balanceHuman: string;\n balanceRaw: string;\n balanceUsd: string;\n chainId: Hex;\n decimals: number;\n symbol: string;\n};\n\nexport type UpdateTransactionDataCallback = (\n transactionId: string,\n fn: (data: Draft<TransactionData>) => void,\n) => void;\n\nexport type FiatRates = {\n fiatRate: string;\n usdRate: string;\n};\n\nexport type QuoteRequest = {\n from: Hex;\n sourceBalanceRaw: string;\n sourceChainId: Hex;\n sourceTokenAddress: Hex;\n sourceTokenAmount: string;\n targetAmountMinimum: string;\n targetChainId: Hex;\n targetTokenAddress: Hex;\n};\n\nexport type TransactionPayFees = {\n provider: FiatValue;\n sourceNetwork: FiatValue;\n targetNetwork: FiatValue;\n};\n\nexport type TransactionPayQuote<OriginalQuote> = {\n dust: FiatValue;\n estimatedDuration: number;\n fees: TransactionPayFees;\n original: OriginalQuote;\n request: QuoteRequest;\n strategy: TransactionPayStrategy;\n};\n\nexport type PayStrategyGetQuotesRequest = {\n messenger: TransactionPayControllerMessenger;\n requests: QuoteRequest[];\n transaction: TransactionMeta;\n};\n\nexport type PayStrategyExecuteRequest<OriginalRequest> = {\n isSmartTransaction: (chainId: Hex) => boolean;\n messenger: TransactionPayControllerMessenger;\n quotes: TransactionPayQuote<OriginalRequest>[];\n transaction: TransactionMeta;\n};\n\nexport type PayStrategyGetBatchRequest<OriginalQuote> = {\n messenger: TransactionPayControllerMessenger;\n quotes: TransactionPayQuote<OriginalQuote>[];\n};\n\nexport type PayStrategyGetRefreshIntervalRequest = {\n chainId: Hex;\n messenger: TransactionPayControllerMessenger;\n};\n\nexport type PayStrategy<OriginalQuote> = {\n getQuotes: (\n request: PayStrategyGetQuotesRequest,\n ) => Promise<TransactionPayQuote<OriginalQuote>[]>;\n\n getBatchTransactions?: (\n request: PayStrategyGetBatchRequest<OriginalQuote>,\n ) => Promise<BatchTransaction[]>;\n\n getRefreshInterval?: (\n request: PayStrategyGetRefreshIntervalRequest,\n ) => Promise<number | undefined>;\n\n execute: (request: PayStrategyExecuteRequest<OriginalQuote>) => Promise<{\n transactionHash?: Hex;\n }>;\n};\n\nexport type FiatValue = {\n fiat: string;\n usd: string;\n};\n\nexport type TransactionPayTotals = {\n estimatedDuration: number;\n fees: TransactionPayFees;\n total: FiatValue;\n};\n"]}
@@ -0,0 +1,149 @@
1
+ import type { CurrencyRateControllerActions, TokenBalancesControllerGetStateAction } from "@metamask/assets-controllers";
2
+ import type { TokenListControllerActions } from "@metamask/assets-controllers";
3
+ import type { TokenRatesControllerGetStateAction } from "@metamask/assets-controllers";
4
+ import type { TokensControllerGetStateAction } from "@metamask/assets-controllers";
5
+ import type { AccountTrackerControllerGetStateAction } from "@metamask/assets-controllers";
6
+ import type { RestrictedMessenger } from "@metamask/base-controller";
7
+ import type { ControllerStateChangeEvent } from "@metamask/base-controller";
8
+ import type { ControllerGetStateAction } from "@metamask/base-controller";
9
+ import type { BridgeControllerActions } from "@metamask/bridge-controller";
10
+ import type { BridgeStatusControllerStateChangeEvent } from "@metamask/bridge-status-controller";
11
+ import type { BridgeStatusControllerActions } from "@metamask/bridge-status-controller";
12
+ import type { GasFeeControllerActions } from "@metamask/gas-fee-controller";
13
+ import type { NetworkControllerFindNetworkClientIdByChainIdAction } from "@metamask/network-controller";
14
+ import type { NetworkControllerGetNetworkClientByIdAction } from "@metamask/network-controller";
15
+ import type { RemoteFeatureFlagControllerGetStateAction } from "@metamask/remote-feature-flag-controller";
16
+ import type { TransactionControllerUnapprovedTransactionAddedEvent } from "@metamask/transaction-controller";
17
+ import type { TransactionControllerGetStateAction } from "@metamask/transaction-controller";
18
+ import type { TransactionControllerStateChangeEvent } from "@metamask/transaction-controller";
19
+ import type { TransactionMeta } from "@metamask/transaction-controller";
20
+ import type { TransactionControllerAddTransactionAction } from "@metamask/transaction-controller";
21
+ import type { TransactionControllerUpdateTransactionAction } from "@metamask/transaction-controller";
22
+ import type { BatchTransaction } from "@metamask/transaction-controller";
23
+ import type { Hex, Json } from "@metamask/utils";
24
+ import type { Draft } from "immer";
25
+ import type { CONTROLLER_NAME, TransactionPayStrategy } from "./constants.cjs";
26
+ export type AllowedActions = AccountTrackerControllerGetStateAction | BridgeControllerActions | BridgeStatusControllerActions | CurrencyRateControllerActions | GasFeeControllerActions | NetworkControllerFindNetworkClientIdByChainIdAction | NetworkControllerGetNetworkClientByIdAction | RemoteFeatureFlagControllerGetStateAction | TokenBalancesControllerGetStateAction | TokenListControllerActions | TokenRatesControllerGetStateAction | TokensControllerGetStateAction | TransactionControllerAddTransactionAction | TransactionControllerGetStateAction | TransactionControllerUpdateTransactionAction;
27
+ export type AllowedEvents = BridgeStatusControllerStateChangeEvent | TransactionControllerStateChangeEvent | TransactionControllerUnapprovedTransactionAddedEvent;
28
+ export type TransactionPayControllerGetStateAction = ControllerGetStateAction<typeof CONTROLLER_NAME, TransactionPayControllerState>;
29
+ export type TransactionPayControllerGetStrategyAction = {
30
+ type: `${typeof CONTROLLER_NAME}:getStrategy`;
31
+ handler: (transaction: TransactionMeta) => Promise<TransactionPayStrategy>;
32
+ };
33
+ export type TransactionPayControllerStateChangeEvent = ControllerStateChangeEvent<typeof CONTROLLER_NAME, TransactionPayControllerState>;
34
+ export type TransactionPayControllerActions = TransactionPayControllerGetStateAction | TransactionPayControllerGetStrategyAction;
35
+ export type TransactionPayControllerEvents = TransactionPayControllerStateChangeEvent;
36
+ export type TransactionPayControllerMessenger = RestrictedMessenger<typeof CONTROLLER_NAME, TransactionPayControllerActions | AllowedActions, TransactionPayControllerEvents | AllowedEvents, AllowedActions['type'], AllowedEvents['type']>;
37
+ export type TransactionPayControllerOptions = {
38
+ getStrategy?: (transaction: TransactionMeta) => Promise<TransactionPayStrategy>;
39
+ messenger: TransactionPayControllerMessenger;
40
+ state?: Partial<TransactionPayControllerState>;
41
+ };
42
+ export type TransactionPayControllerState = {
43
+ transactionData: Record<string, TransactionData>;
44
+ };
45
+ export type TransactionData = {
46
+ isLoading: boolean;
47
+ paymentToken?: TransactionPaymentToken;
48
+ quotes?: TransactionPayQuote<Json>[];
49
+ quotesLastUpdated?: number;
50
+ sourceAmounts?: TransactionPaySourceAmount[];
51
+ tokens: TransactionPayRequiredToken[];
52
+ totals?: TransactionPayTotals;
53
+ };
54
+ export type TransactionPayRequiredToken = {
55
+ address: Hex;
56
+ allowUnderMinimum: boolean;
57
+ amountFiat: string;
58
+ amountHuman: string;
59
+ amountRaw: string;
60
+ amountUsd: string;
61
+ balanceFiat: string;
62
+ balanceHuman: string;
63
+ balanceRaw: string;
64
+ balanceUsd: string;
65
+ chainId: Hex;
66
+ decimals: number;
67
+ skipIfBalance: boolean;
68
+ symbol: string;
69
+ };
70
+ export type TransactionPaySourceAmount = {
71
+ sourceAmountHuman: string;
72
+ sourceAmountRaw: string;
73
+ targetTokenAddress: Hex;
74
+ };
75
+ export type TransactionPaymentToken = {
76
+ address: Hex;
77
+ balanceFiat: string;
78
+ balanceHuman: string;
79
+ balanceRaw: string;
80
+ balanceUsd: string;
81
+ chainId: Hex;
82
+ decimals: number;
83
+ symbol: string;
84
+ };
85
+ export type UpdateTransactionDataCallback = (transactionId: string, fn: (data: Draft<TransactionData>) => void) => void;
86
+ export type FiatRates = {
87
+ fiatRate: string;
88
+ usdRate: string;
89
+ };
90
+ export type QuoteRequest = {
91
+ from: Hex;
92
+ sourceBalanceRaw: string;
93
+ sourceChainId: Hex;
94
+ sourceTokenAddress: Hex;
95
+ sourceTokenAmount: string;
96
+ targetAmountMinimum: string;
97
+ targetChainId: Hex;
98
+ targetTokenAddress: Hex;
99
+ };
100
+ export type TransactionPayFees = {
101
+ provider: FiatValue;
102
+ sourceNetwork: FiatValue;
103
+ targetNetwork: FiatValue;
104
+ };
105
+ export type TransactionPayQuote<OriginalQuote> = {
106
+ dust: FiatValue;
107
+ estimatedDuration: number;
108
+ fees: TransactionPayFees;
109
+ original: OriginalQuote;
110
+ request: QuoteRequest;
111
+ strategy: TransactionPayStrategy;
112
+ };
113
+ export type PayStrategyGetQuotesRequest = {
114
+ messenger: TransactionPayControllerMessenger;
115
+ requests: QuoteRequest[];
116
+ transaction: TransactionMeta;
117
+ };
118
+ export type PayStrategyExecuteRequest<OriginalRequest> = {
119
+ isSmartTransaction: (chainId: Hex) => boolean;
120
+ messenger: TransactionPayControllerMessenger;
121
+ quotes: TransactionPayQuote<OriginalRequest>[];
122
+ transaction: TransactionMeta;
123
+ };
124
+ export type PayStrategyGetBatchRequest<OriginalQuote> = {
125
+ messenger: TransactionPayControllerMessenger;
126
+ quotes: TransactionPayQuote<OriginalQuote>[];
127
+ };
128
+ export type PayStrategyGetRefreshIntervalRequest = {
129
+ chainId: Hex;
130
+ messenger: TransactionPayControllerMessenger;
131
+ };
132
+ export type PayStrategy<OriginalQuote> = {
133
+ getQuotes: (request: PayStrategyGetQuotesRequest) => Promise<TransactionPayQuote<OriginalQuote>[]>;
134
+ getBatchTransactions?: (request: PayStrategyGetBatchRequest<OriginalQuote>) => Promise<BatchTransaction[]>;
135
+ getRefreshInterval?: (request: PayStrategyGetRefreshIntervalRequest) => Promise<number | undefined>;
136
+ execute: (request: PayStrategyExecuteRequest<OriginalQuote>) => Promise<{
137
+ transactionHash?: Hex;
138
+ }>;
139
+ };
140
+ export type FiatValue = {
141
+ fiat: string;
142
+ usd: string;
143
+ };
144
+ export type TransactionPayTotals = {
145
+ estimatedDuration: number;
146
+ fees: TransactionPayFees;
147
+ total: FiatValue;
148
+ };
149
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import type { CurrencyRateControllerActions, TokenBalancesControllerGetStateAction } from "@metamask/assets-controllers";
2
+ import type { TokenListControllerActions } from "@metamask/assets-controllers";
3
+ import type { TokenRatesControllerGetStateAction } from "@metamask/assets-controllers";
4
+ import type { TokensControllerGetStateAction } from "@metamask/assets-controllers";
5
+ import type { AccountTrackerControllerGetStateAction } from "@metamask/assets-controllers";
6
+ import type { RestrictedMessenger } from "@metamask/base-controller";
7
+ import type { ControllerStateChangeEvent } from "@metamask/base-controller";
8
+ import type { ControllerGetStateAction } from "@metamask/base-controller";
9
+ import type { BridgeControllerActions } from "@metamask/bridge-controller";
10
+ import type { BridgeStatusControllerStateChangeEvent } from "@metamask/bridge-status-controller";
11
+ import type { BridgeStatusControllerActions } from "@metamask/bridge-status-controller";
12
+ import type { GasFeeControllerActions } from "@metamask/gas-fee-controller";
13
+ import type { NetworkControllerFindNetworkClientIdByChainIdAction } from "@metamask/network-controller";
14
+ import type { NetworkControllerGetNetworkClientByIdAction } from "@metamask/network-controller";
15
+ import type { RemoteFeatureFlagControllerGetStateAction } from "@metamask/remote-feature-flag-controller";
16
+ import type { TransactionControllerUnapprovedTransactionAddedEvent } from "@metamask/transaction-controller";
17
+ import type { TransactionControllerGetStateAction } from "@metamask/transaction-controller";
18
+ import type { TransactionControllerStateChangeEvent } from "@metamask/transaction-controller";
19
+ import type { TransactionMeta } from "@metamask/transaction-controller";
20
+ import type { TransactionControllerAddTransactionAction } from "@metamask/transaction-controller";
21
+ import type { TransactionControllerUpdateTransactionAction } from "@metamask/transaction-controller";
22
+ import type { BatchTransaction } from "@metamask/transaction-controller";
23
+ import type { Hex, Json } from "@metamask/utils";
24
+ import type { Draft } from "immer";
25
+ import type { CONTROLLER_NAME, TransactionPayStrategy } from "./constants.mjs";
26
+ export type AllowedActions = AccountTrackerControllerGetStateAction | BridgeControllerActions | BridgeStatusControllerActions | CurrencyRateControllerActions | GasFeeControllerActions | NetworkControllerFindNetworkClientIdByChainIdAction | NetworkControllerGetNetworkClientByIdAction | RemoteFeatureFlagControllerGetStateAction | TokenBalancesControllerGetStateAction | TokenListControllerActions | TokenRatesControllerGetStateAction | TokensControllerGetStateAction | TransactionControllerAddTransactionAction | TransactionControllerGetStateAction | TransactionControllerUpdateTransactionAction;
27
+ export type AllowedEvents = BridgeStatusControllerStateChangeEvent | TransactionControllerStateChangeEvent | TransactionControllerUnapprovedTransactionAddedEvent;
28
+ export type TransactionPayControllerGetStateAction = ControllerGetStateAction<typeof CONTROLLER_NAME, TransactionPayControllerState>;
29
+ export type TransactionPayControllerGetStrategyAction = {
30
+ type: `${typeof CONTROLLER_NAME}:getStrategy`;
31
+ handler: (transaction: TransactionMeta) => Promise<TransactionPayStrategy>;
32
+ };
33
+ export type TransactionPayControllerStateChangeEvent = ControllerStateChangeEvent<typeof CONTROLLER_NAME, TransactionPayControllerState>;
34
+ export type TransactionPayControllerActions = TransactionPayControllerGetStateAction | TransactionPayControllerGetStrategyAction;
35
+ export type TransactionPayControllerEvents = TransactionPayControllerStateChangeEvent;
36
+ export type TransactionPayControllerMessenger = RestrictedMessenger<typeof CONTROLLER_NAME, TransactionPayControllerActions | AllowedActions, TransactionPayControllerEvents | AllowedEvents, AllowedActions['type'], AllowedEvents['type']>;
37
+ export type TransactionPayControllerOptions = {
38
+ getStrategy?: (transaction: TransactionMeta) => Promise<TransactionPayStrategy>;
39
+ messenger: TransactionPayControllerMessenger;
40
+ state?: Partial<TransactionPayControllerState>;
41
+ };
42
+ export type TransactionPayControllerState = {
43
+ transactionData: Record<string, TransactionData>;
44
+ };
45
+ export type TransactionData = {
46
+ isLoading: boolean;
47
+ paymentToken?: TransactionPaymentToken;
48
+ quotes?: TransactionPayQuote<Json>[];
49
+ quotesLastUpdated?: number;
50
+ sourceAmounts?: TransactionPaySourceAmount[];
51
+ tokens: TransactionPayRequiredToken[];
52
+ totals?: TransactionPayTotals;
53
+ };
54
+ export type TransactionPayRequiredToken = {
55
+ address: Hex;
56
+ allowUnderMinimum: boolean;
57
+ amountFiat: string;
58
+ amountHuman: string;
59
+ amountRaw: string;
60
+ amountUsd: string;
61
+ balanceFiat: string;
62
+ balanceHuman: string;
63
+ balanceRaw: string;
64
+ balanceUsd: string;
65
+ chainId: Hex;
66
+ decimals: number;
67
+ skipIfBalance: boolean;
68
+ symbol: string;
69
+ };
70
+ export type TransactionPaySourceAmount = {
71
+ sourceAmountHuman: string;
72
+ sourceAmountRaw: string;
73
+ targetTokenAddress: Hex;
74
+ };
75
+ export type TransactionPaymentToken = {
76
+ address: Hex;
77
+ balanceFiat: string;
78
+ balanceHuman: string;
79
+ balanceRaw: string;
80
+ balanceUsd: string;
81
+ chainId: Hex;
82
+ decimals: number;
83
+ symbol: string;
84
+ };
85
+ export type UpdateTransactionDataCallback = (transactionId: string, fn: (data: Draft<TransactionData>) => void) => void;
86
+ export type FiatRates = {
87
+ fiatRate: string;
88
+ usdRate: string;
89
+ };
90
+ export type QuoteRequest = {
91
+ from: Hex;
92
+ sourceBalanceRaw: string;
93
+ sourceChainId: Hex;
94
+ sourceTokenAddress: Hex;
95
+ sourceTokenAmount: string;
96
+ targetAmountMinimum: string;
97
+ targetChainId: Hex;
98
+ targetTokenAddress: Hex;
99
+ };
100
+ export type TransactionPayFees = {
101
+ provider: FiatValue;
102
+ sourceNetwork: FiatValue;
103
+ targetNetwork: FiatValue;
104
+ };
105
+ export type TransactionPayQuote<OriginalQuote> = {
106
+ dust: FiatValue;
107
+ estimatedDuration: number;
108
+ fees: TransactionPayFees;
109
+ original: OriginalQuote;
110
+ request: QuoteRequest;
111
+ strategy: TransactionPayStrategy;
112
+ };
113
+ export type PayStrategyGetQuotesRequest = {
114
+ messenger: TransactionPayControllerMessenger;
115
+ requests: QuoteRequest[];
116
+ transaction: TransactionMeta;
117
+ };
118
+ export type PayStrategyExecuteRequest<OriginalRequest> = {
119
+ isSmartTransaction: (chainId: Hex) => boolean;
120
+ messenger: TransactionPayControllerMessenger;
121
+ quotes: TransactionPayQuote<OriginalRequest>[];
122
+ transaction: TransactionMeta;
123
+ };
124
+ export type PayStrategyGetBatchRequest<OriginalQuote> = {
125
+ messenger: TransactionPayControllerMessenger;
126
+ quotes: TransactionPayQuote<OriginalQuote>[];
127
+ };
128
+ export type PayStrategyGetRefreshIntervalRequest = {
129
+ chainId: Hex;
130
+ messenger: TransactionPayControllerMessenger;
131
+ };
132
+ export type PayStrategy<OriginalQuote> = {
133
+ getQuotes: (request: PayStrategyGetQuotesRequest) => Promise<TransactionPayQuote<OriginalQuote>[]>;
134
+ getBatchTransactions?: (request: PayStrategyGetBatchRequest<OriginalQuote>) => Promise<BatchTransaction[]>;
135
+ getRefreshInterval?: (request: PayStrategyGetRefreshIntervalRequest) => Promise<number | undefined>;
136
+ execute: (request: PayStrategyExecuteRequest<OriginalQuote>) => Promise<{
137
+ transactionHash?: Hex;
138
+ }>;
139
+ };
140
+ export type FiatValue = {
141
+ fiat: string;
142
+ usd: string;
143
+ };
144
+ export type TransactionPayTotals = {
145
+ estimatedDuration: number;
146
+ fees: TransactionPayFees;
147
+ total: FiatValue;
148
+ };
149
+ //# sourceMappingURL=types.d.mts.map