@metamask/transaction-pay-controller 22.7.0 → 22.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/dist/TransactionPayController-method-action-types.cjs.map +1 -1
  3. package/dist/TransactionPayController-method-action-types.d.cts +15 -1
  4. package/dist/TransactionPayController-method-action-types.d.cts.map +1 -1
  5. package/dist/TransactionPayController-method-action-types.d.mts +15 -1
  6. package/dist/TransactionPayController-method-action-types.d.mts.map +1 -1
  7. package/dist/TransactionPayController-method-action-types.mjs.map +1 -1
  8. package/dist/TransactionPayController.cjs +19 -3
  9. package/dist/TransactionPayController.cjs.map +1 -1
  10. package/dist/TransactionPayController.d.cts +13 -2
  11. package/dist/TransactionPayController.d.cts.map +1 -1
  12. package/dist/TransactionPayController.d.mts +13 -2
  13. package/dist/TransactionPayController.d.mts.map +1 -1
  14. package/dist/TransactionPayController.mjs +19 -3
  15. package/dist/TransactionPayController.mjs.map +1 -1
  16. package/dist/constants.cjs +1 -0
  17. package/dist/constants.cjs.map +1 -1
  18. package/dist/constants.d.cts +1 -0
  19. package/dist/constants.d.cts.map +1 -1
  20. package/dist/constants.d.mts +1 -0
  21. package/dist/constants.d.mts.map +1 -1
  22. package/dist/constants.mjs +1 -0
  23. package/dist/constants.mjs.map +1 -1
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +1 -1
  26. package/dist/index.d.cts.map +1 -1
  27. package/dist/index.d.mts +1 -1
  28. package/dist/index.d.mts.map +1 -1
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/strategy/relay/relay-quotes.cjs +20 -3
  31. package/dist/strategy/relay/relay-quotes.cjs.map +1 -1
  32. package/dist/strategy/relay/relay-quotes.d.cts.map +1 -1
  33. package/dist/strategy/relay/relay-quotes.d.mts.map +1 -1
  34. package/dist/strategy/relay/relay-quotes.mjs +20 -3
  35. package/dist/strategy/relay/relay-quotes.mjs.map +1 -1
  36. package/dist/strategy/relay/relay-submit.cjs +24 -11
  37. package/dist/strategy/relay/relay-submit.cjs.map +1 -1
  38. package/dist/strategy/relay/relay-submit.mjs +24 -11
  39. package/dist/strategy/relay/relay-submit.mjs.map +1 -1
  40. package/dist/strategy/server/ServerStrategy.cjs +35 -0
  41. package/dist/strategy/server/ServerStrategy.cjs.map +1 -0
  42. package/dist/strategy/server/ServerStrategy.d.cts +15 -0
  43. package/dist/strategy/server/ServerStrategy.d.cts.map +1 -0
  44. package/dist/strategy/server/ServerStrategy.d.mts +15 -0
  45. package/dist/strategy/server/ServerStrategy.d.mts.map +1 -0
  46. package/dist/strategy/server/ServerStrategy.mjs +31 -0
  47. package/dist/strategy/server/ServerStrategy.mjs.map +1 -0
  48. package/dist/strategy/server/constants.cjs +11 -0
  49. package/dist/strategy/server/constants.cjs.map +1 -0
  50. package/dist/strategy/server/constants.d.cts +8 -0
  51. package/dist/strategy/server/constants.d.cts.map +1 -0
  52. package/dist/strategy/server/constants.d.mts +8 -0
  53. package/dist/strategy/server/constants.d.mts.map +1 -0
  54. package/dist/strategy/server/constants.mjs +8 -0
  55. package/dist/strategy/server/constants.mjs.map +1 -0
  56. package/dist/strategy/server/perps.cjs +71 -0
  57. package/dist/strategy/server/perps.cjs.map +1 -0
  58. package/dist/strategy/server/perps.d.cts +36 -0
  59. package/dist/strategy/server/perps.d.cts.map +1 -0
  60. package/dist/strategy/server/perps.d.mts +36 -0
  61. package/dist/strategy/server/perps.d.mts.map +1 -0
  62. package/dist/strategy/server/perps.mjs +66 -0
  63. package/dist/strategy/server/perps.mjs.map +1 -0
  64. package/dist/strategy/server/server-api.cjs +98 -0
  65. package/dist/strategy/server/server-api.cjs.map +1 -0
  66. package/dist/strategy/server/server-api.d.cts +35 -0
  67. package/dist/strategy/server/server-api.d.cts.map +1 -0
  68. package/dist/strategy/server/server-api.d.mts +35 -0
  69. package/dist/strategy/server/server-api.d.mts.map +1 -0
  70. package/dist/strategy/server/server-api.mjs +92 -0
  71. package/dist/strategy/server/server-api.mjs.map +1 -0
  72. package/dist/strategy/server/server-quotes.cjs +315 -0
  73. package/dist/strategy/server/server-quotes.cjs.map +1 -0
  74. package/dist/strategy/server/server-quotes.d.cts +10 -0
  75. package/dist/strategy/server/server-quotes.d.cts.map +1 -0
  76. package/dist/strategy/server/server-quotes.d.mts +10 -0
  77. package/dist/strategy/server/server-quotes.d.mts.map +1 -0
  78. package/dist/strategy/server/server-quotes.mjs +311 -0
  79. package/dist/strategy/server/server-quotes.mjs.map +1 -0
  80. package/dist/strategy/server/server-submit.cjs +296 -0
  81. package/dist/strategy/server/server-submit.cjs.map +1 -0
  82. package/dist/strategy/server/server-submit.d.cts +13 -0
  83. package/dist/strategy/server/server-submit.d.cts.map +1 -0
  84. package/dist/strategy/server/server-submit.d.mts +13 -0
  85. package/dist/strategy/server/server-submit.d.mts.map +1 -0
  86. package/dist/strategy/server/server-submit.mjs +292 -0
  87. package/dist/strategy/server/server-submit.mjs.map +1 -0
  88. package/dist/strategy/server/types.cjs +26 -0
  89. package/dist/strategy/server/types.cjs.map +1 -0
  90. package/dist/strategy/server/types.d.cts +153 -0
  91. package/dist/strategy/server/types.d.cts.map +1 -0
  92. package/dist/strategy/server/types.d.mts +153 -0
  93. package/dist/strategy/server/types.d.mts.map +1 -0
  94. package/dist/strategy/server/types.mjs +23 -0
  95. package/dist/strategy/server/types.mjs.map +1 -0
  96. package/dist/tests/messenger-mock.cjs +3 -0
  97. package/dist/tests/messenger-mock.cjs.map +1 -1
  98. package/dist/tests/messenger-mock.d.cts +255 -3
  99. package/dist/tests/messenger-mock.d.cts.map +1 -1
  100. package/dist/tests/messenger-mock.d.mts +255 -3
  101. package/dist/tests/messenger-mock.d.mts.map +1 -1
  102. package/dist/tests/messenger-mock.mjs +3 -0
  103. package/dist/tests/messenger-mock.mjs.map +1 -1
  104. package/dist/types.cjs.map +1 -1
  105. package/dist/types.d.cts +43 -17
  106. package/dist/types.d.cts.map +1 -1
  107. package/dist/types.d.mts +43 -17
  108. package/dist/types.d.mts.map +1 -1
  109. package/dist/types.mjs.map +1 -1
  110. package/dist/utils/feature-flags.cjs +43 -3
  111. package/dist/utils/feature-flags.cjs.map +1 -1
  112. package/dist/utils/feature-flags.d.cts +21 -0
  113. package/dist/utils/feature-flags.d.cts.map +1 -1
  114. package/dist/utils/feature-flags.d.mts +21 -0
  115. package/dist/utils/feature-flags.d.mts.map +1 -1
  116. package/dist/utils/feature-flags.mjs +40 -2
  117. package/dist/utils/feature-flags.mjs.map +1 -1
  118. package/dist/utils/gas.cjs +11 -10
  119. package/dist/utils/gas.cjs.map +1 -1
  120. package/dist/utils/gas.d.cts +12 -0
  121. package/dist/utils/gas.d.cts.map +1 -1
  122. package/dist/utils/gas.d.mts +12 -0
  123. package/dist/utils/gas.d.mts.map +1 -1
  124. package/dist/utils/gas.mjs +10 -10
  125. package/dist/utils/gas.mjs.map +1 -1
  126. package/dist/utils/quotes.cjs +9 -3
  127. package/dist/utils/quotes.cjs.map +1 -1
  128. package/dist/utils/quotes.d.cts.map +1 -1
  129. package/dist/utils/quotes.d.mts.map +1 -1
  130. package/dist/utils/quotes.mjs +10 -4
  131. package/dist/utils/quotes.mjs.map +1 -1
  132. package/dist/utils/strategy.cjs +3 -0
  133. package/dist/utils/strategy.cjs.map +1 -1
  134. package/dist/utils/strategy.d.cts.map +1 -1
  135. package/dist/utils/strategy.d.mts.map +1 -1
  136. package/dist/utils/strategy.mjs +3 -0
  137. package/dist/utils/strategy.mjs.map +1 -1
  138. package/package.json +5 -5
@@ -45,6 +45,7 @@ export declare function getMessengerMock({ skipRegister, }?: {
45
45
  to: `0x${string}`;
46
46
  value: `0x${string}`;
47
47
  }>>;
48
+ getPaymentOverrideDataMock: jest.MockedFn<(request: import("../index.cjs").GetPaymentOverrideDataRequest) => Promise<import("../index.cjs").GetPaymentOverrideDataResponse>>;
48
49
  getGasFeeControllerStateMock: jest.Mock<any, any, any>;
49
50
  getGasFeeTokensMock: jest.MockedFn<(request: import("@metamask/transaction-controller").GetGasFeeTokensRequest) => Promise<import("@metamask/transaction-controller").GasFeeToken[]>>;
50
51
  getKeyringControllerStateMock: jest.MockedFn<() => import("@metamask/keyring-controller").KeyringControllerState>;
@@ -74,7 +75,7 @@ export declare function getMessengerMock({ skipRegister, }?: {
74
75
  sourceHash: `0x${string}`;
75
76
  }>>;
76
77
  publish: <EventType extends "AssetsController:stateChange" | "BridgeStatusController:stateChange" | "CurrencyRateController:stateChange" | "TokenRatesController:stateChange" | "TokensController:stateChange" | "TransactionController:stateChange" | "TransactionController:unapprovedTransactionAdded" | "TransactionPayController:stateChange">(eventType: EventType & `${string}:${string}`, ...payload: import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controller").AssetsControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/bridge-status-controller").BridgeStatusControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controllers").CurrencyRateStateChange, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controllers").TokenRatesControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controllers").TokensControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/transaction-controller").TransactionControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/transaction-controller").TransactionControllerUnapprovedTransactionAddedEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("../index.cjs").TransactionPayControllerStateChangeEvent, EventType>) => void;
77
- submitTransactionMock: jest.MockedFunction<(accountAddress: string, quoteResponse: {
78
+ submitTransactionMock: jest.MockedFunction<(accountAddress: string, maybeQuoteResponses: ({
78
79
  quote: {
79
80
  gasIncluded?: boolean | undefined;
80
81
  gasIncluded7702?: boolean | undefined;
@@ -292,12 +293,231 @@ export declare function getMessengerMock({ skipRegister, }?: {
292
293
  effectiveGas?: number | undefined;
293
294
  } | undefined;
294
295
  quoteRequestIndex?: number | undefined;
295
- } & import("@metamask/bridge-controller").QuoteMetadata, isStxEnabledOnClient: boolean, quotesReceivedContext?: (import("@metamask/bridge-controller").TradeData & {
296
+ } & import("@metamask/bridge-controller").QuoteMetadata) | ({
297
+ quote: {
298
+ gasIncluded?: boolean | undefined;
299
+ gasIncluded7702?: boolean | undefined;
300
+ gasSponsored?: boolean | undefined;
301
+ } & {
302
+ srcChainId: number;
303
+ destChainId: number;
304
+ srcAsset: {
305
+ symbol: string;
306
+ chainId: number;
307
+ address: string;
308
+ assetId: `${string}:${string}/${string}:${string}`;
309
+ name: string;
310
+ decimals: number;
311
+ icon?: string | null | undefined;
312
+ iconUrl?: string | null | undefined;
313
+ };
314
+ destAsset: {
315
+ symbol: string;
316
+ chainId: number;
317
+ address: string;
318
+ assetId: `${string}:${string}/${string}:${string}`;
319
+ name: string;
320
+ decimals: number;
321
+ icon?: string | null | undefined;
322
+ iconUrl?: string | null | undefined;
323
+ };
324
+ requestId: string;
325
+ srcTokenAmount: string;
326
+ destTokenAmount: string;
327
+ minDestTokenAmount: string;
328
+ feeData: {
329
+ metabridge: {
330
+ amount: string;
331
+ asset: {
332
+ symbol: string;
333
+ chainId: number;
334
+ address: string;
335
+ assetId: `${string}:${string}/${string}:${string}`;
336
+ name: string;
337
+ decimals: number;
338
+ icon?: string | null | undefined;
339
+ iconUrl?: string | null | undefined;
340
+ };
341
+ };
342
+ txFee?: ({
343
+ amount: string;
344
+ asset: {
345
+ symbol: string;
346
+ chainId: number;
347
+ address: string;
348
+ assetId: `${string}:${string}/${string}:${string}`;
349
+ name: string;
350
+ decimals: number;
351
+ icon?: string | null | undefined;
352
+ iconUrl?: string | null | undefined;
353
+ };
354
+ } & {
355
+ maxFeePerGas: string;
356
+ maxPriorityFeePerGas: string;
357
+ }) | undefined;
358
+ };
359
+ bridgeId: string;
360
+ bridges: string[];
361
+ steps: {
362
+ action: import("@metamask/bridge-controller").ActionTypes;
363
+ srcChainId: number;
364
+ srcAsset: {
365
+ symbol: string;
366
+ chainId: number;
367
+ address: string;
368
+ assetId: `${string}:${string}/${string}:${string}`;
369
+ name: string;
370
+ decimals: number;
371
+ icon?: string | null | undefined;
372
+ iconUrl?: string | null | undefined;
373
+ };
374
+ destAsset: {
375
+ symbol: string;
376
+ chainId: number;
377
+ address: string;
378
+ assetId: `${string}:${string}/${string}:${string}`;
379
+ name: string;
380
+ decimals: number;
381
+ icon?: string | null | undefined;
382
+ iconUrl?: string | null | undefined;
383
+ };
384
+ srcAmount: string;
385
+ destAmount: string;
386
+ protocol: {
387
+ name: string;
388
+ icon?: string | undefined;
389
+ displayName?: string | undefined;
390
+ };
391
+ destChainId?: number | undefined;
392
+ }[];
393
+ refuel?: {
394
+ action: import("@metamask/bridge-controller").ActionTypes;
395
+ srcChainId: number;
396
+ srcAsset: {
397
+ symbol: string;
398
+ chainId: number;
399
+ address: string;
400
+ assetId: `${string}:${string}/${string}:${string}`;
401
+ name: string;
402
+ decimals: number;
403
+ icon?: string | null | undefined;
404
+ iconUrl?: string | null | undefined;
405
+ };
406
+ destAsset: {
407
+ symbol: string;
408
+ chainId: number;
409
+ address: string;
410
+ assetId: `${string}:${string}/${string}:${string}`;
411
+ name: string;
412
+ decimals: number;
413
+ icon?: string | null | undefined;
414
+ iconUrl?: string | null | undefined;
415
+ };
416
+ srcAmount: string;
417
+ destAmount: string;
418
+ protocol: {
419
+ name: string;
420
+ icon?: string | undefined;
421
+ displayName?: string | undefined;
422
+ };
423
+ destChainId?: number | undefined;
424
+ } | undefined;
425
+ priceData?: {
426
+ totalFromAmountUsd?: string | undefined;
427
+ totalToAmountUsd?: string | undefined;
428
+ priceImpact?: string | undefined;
429
+ totalFeeAmountUsd?: string | undefined;
430
+ } | undefined;
431
+ intent?: {
432
+ protocol: string;
433
+ order: {
434
+ sellToken: `0x${string}`;
435
+ buyToken: `0x${string}`;
436
+ validTo: string | number;
437
+ appData: string;
438
+ appDataHash: `0x${string}`;
439
+ feeAmount: string;
440
+ kind: "buy" | "sell";
441
+ partiallyFillable: boolean;
442
+ receiver?: `0x${string}` | undefined;
443
+ sellAmount?: string | undefined;
444
+ buyAmount?: string | undefined;
445
+ from?: `0x${string}` | undefined;
446
+ };
447
+ typedData: {
448
+ types: Record<string, {
449
+ name: string;
450
+ type: string;
451
+ }[]>;
452
+ primaryType: string;
453
+ domain: Record<string, any>;
454
+ message: Record<string, any>;
455
+ };
456
+ settlementContract?: `0x${string}` | undefined;
457
+ } | undefined;
458
+ };
459
+ estimatedProcessingTimeInSeconds: number;
460
+ trade: string | {
461
+ chainId: number;
462
+ from: `0x${string}`;
463
+ to: `0x${string}`;
464
+ value: `0x${string}`;
465
+ data: `0x${string}`;
466
+ gasLimit: number | null;
467
+ effectiveGas?: number | undefined;
468
+ } | {
469
+ unsignedPsbtBase64: string;
470
+ inputsToSign: {}[] | null;
471
+ } | {
472
+ raw_data_hex: string;
473
+ visible?: boolean | undefined;
474
+ raw_data?: {
475
+ contract?: {
476
+ type?: string | undefined;
477
+ }[] | undefined;
478
+ fee_limit?: number | undefined;
479
+ } | null | undefined;
480
+ };
481
+ quoteId?: string | undefined;
482
+ approval?: {
483
+ chainId: number;
484
+ from: `0x${string}`;
485
+ to: `0x${string}`;
486
+ value: `0x${string}`;
487
+ data: `0x${string}`;
488
+ gasLimit: number | null;
489
+ effectiveGas?: number | undefined;
490
+ } | {
491
+ raw_data_hex: string;
492
+ visible?: boolean | undefined;
493
+ raw_data?: {
494
+ contract?: {
495
+ type?: string | undefined;
496
+ }[] | undefined;
497
+ fee_limit?: number | undefined;
498
+ } | null | undefined;
499
+ } | undefined;
500
+ } & {
501
+ trade: import("@metamask/bridge-controller").Trade;
502
+ approval?: import("@metamask/bridge-controller").Trade | undefined;
503
+ featureId?: import("@metamask/bridge-controller").FeatureId | undefined;
504
+ resetApproval?: {
505
+ chainId: number;
506
+ from: `0x${string}`;
507
+ to: `0x${string}`;
508
+ value: `0x${string}`;
509
+ data: `0x${string}`;
510
+ gasLimit: number | null;
511
+ effectiveGas?: number | undefined;
512
+ } | undefined;
513
+ quoteRequestIndex?: number | undefined;
514
+ } & import("@metamask/bridge-controller").QuoteMetadata)[], isStxEnabled: boolean, quotesReceivedContext?: (import("@metamask/bridge-controller").TradeData & {
296
515
  warnings: import("@metamask/bridge-controller").QuoteWarning[];
297
516
  best_quote_provider: `${string}_${string}` | undefined;
298
517
  price_impact: number;
299
518
  can_submit: boolean;
300
519
  usd_balance_source?: number | undefined;
520
+ has_sufficient_gas_for_quote?: boolean | null | undefined;
301
521
  } & {
302
522
  location?: import("@metamask/bridge-controller").MetaMetricsSwapsEventSource | undefined;
303
523
  ab_tests?: Record<string, string> | undefined;
@@ -308,7 +528,39 @@ export declare function getMessengerMock({ skipRegister, }?: {
308
528
  }) | undefined, location?: import("@metamask/bridge-controller").MetaMetricsSwapsEventSource | undefined, abTests?: Record<string, string> | undefined, activeAbTests?: {
309
529
  key: string;
310
530
  value: string;
311
- }[] | undefined, tokenSecurityTypeDestination?: string | null | undefined) => Promise<import("@metamask/transaction-controller").TransactionMeta & Partial<import("../../../bridge-status-controller/src/types.cjs").SolanaTransactionMeta>>>;
531
+ }[] | undefined, tokenSecurityTypeDestination?: string | null | undefined, batchSellTrades?: ({
532
+ transactions: ({
533
+ chainId: number;
534
+ from: `0x${string}`;
535
+ to: `0x${string}`;
536
+ value: `0x${string}`;
537
+ data: `0x${string}`;
538
+ gasLimit: number | null;
539
+ effectiveGas?: number | undefined;
540
+ } & {
541
+ maxFeePerGas: `0x${string}`;
542
+ maxPriorityFeePerGas: `0x${string}`;
543
+ } & {
544
+ type: import("@metamask/bridge-controller").BatchSellTransactionType;
545
+ })[];
546
+ fee?: {
547
+ amount: string;
548
+ asset: {
549
+ symbol: string;
550
+ chainId: number;
551
+ address: string;
552
+ assetId: `${string}:${string}/${string}:${string}`;
553
+ name: string;
554
+ decimals: number;
555
+ icon?: string | null | undefined;
556
+ iconUrl?: string | null | undefined;
557
+ };
558
+ } | undefined;
559
+ } & {
560
+ gasIncluded?: boolean | undefined;
561
+ gasIncluded7702?: boolean | undefined;
562
+ gasSponsored?: boolean | undefined;
563
+ }) | null | undefined) => Promise<import("@metamask/transaction-controller").TransactionMeta>>;
312
564
  updateTransactionMock: jest.MockedFn<(transactionMeta: import("@metamask/transaction-controller").TransactionMeta, note: string) => void>;
313
565
  };
314
566
  //# sourceMappingURL=messenger-mock.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messenger-mock.d.cts","sourceRoot":"","sources":["../../src/tests/messenger-mock.ts"],"names":[],"mappings":";AA4BA,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAW;AAa5D;;;;;;GAMG;AAEH,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,GACb,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkRjC"}
1
+ {"version":3,"file":"messenger-mock.d.cts","sourceRoot":"","sources":["../../src/tests/messenger-mock.ts"],"names":[],"mappings":";AA4BA,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAW;AAc5D;;;;;;GAMG;AAEH,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,GACb,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4RjC"}
@@ -45,6 +45,7 @@ export declare function getMessengerMock({ skipRegister, }?: {
45
45
  to: `0x${string}`;
46
46
  value: `0x${string}`;
47
47
  }>>;
48
+ getPaymentOverrideDataMock: jest.MockedFn<(request: import("../index.mjs").GetPaymentOverrideDataRequest) => Promise<import("../index.mjs").GetPaymentOverrideDataResponse>>;
48
49
  getGasFeeControllerStateMock: jest.Mock<any, any, any>;
49
50
  getGasFeeTokensMock: jest.MockedFn<(request: import("@metamask/transaction-controller").GetGasFeeTokensRequest) => Promise<import("@metamask/transaction-controller").GasFeeToken[]>>;
50
51
  getKeyringControllerStateMock: jest.MockedFn<() => import("@metamask/keyring-controller").KeyringControllerState>;
@@ -74,7 +75,7 @@ export declare function getMessengerMock({ skipRegister, }?: {
74
75
  sourceHash: `0x${string}`;
75
76
  }>>;
76
77
  publish: <EventType extends "AssetsController:stateChange" | "BridgeStatusController:stateChange" | "CurrencyRateController:stateChange" | "TokenRatesController:stateChange" | "TokensController:stateChange" | "TransactionController:stateChange" | "TransactionController:unapprovedTransactionAdded" | "TransactionPayController:stateChange">(eventType: EventType & `${string}:${string}`, ...payload: import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controller").AssetsControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/bridge-status-controller").BridgeStatusControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controllers").CurrencyRateStateChange, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controllers").TokenRatesControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/assets-controllers").TokensControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/transaction-controller").TransactionControllerStateChangeEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("@metamask/transaction-controller").TransactionControllerUnapprovedTransactionAddedEvent, EventType> | import("@metamask/messenger").ExtractEventPayload<import("../index.mjs").TransactionPayControllerStateChangeEvent, EventType>) => void;
77
- submitTransactionMock: jest.MockedFunction<(accountAddress: string, quoteResponse: {
78
+ submitTransactionMock: jest.MockedFunction<(accountAddress: string, maybeQuoteResponses: ({
78
79
  quote: {
79
80
  gasIncluded?: boolean | undefined;
80
81
  gasIncluded7702?: boolean | undefined;
@@ -292,12 +293,231 @@ export declare function getMessengerMock({ skipRegister, }?: {
292
293
  effectiveGas?: number | undefined;
293
294
  } | undefined;
294
295
  quoteRequestIndex?: number | undefined;
295
- } & import("@metamask/bridge-controller").QuoteMetadata, isStxEnabledOnClient: boolean, quotesReceivedContext?: (import("@metamask/bridge-controller").TradeData & {
296
+ } & import("@metamask/bridge-controller").QuoteMetadata) | ({
297
+ quote: {
298
+ gasIncluded?: boolean | undefined;
299
+ gasIncluded7702?: boolean | undefined;
300
+ gasSponsored?: boolean | undefined;
301
+ } & {
302
+ srcChainId: number;
303
+ destChainId: number;
304
+ srcAsset: {
305
+ symbol: string;
306
+ chainId: number;
307
+ address: string;
308
+ assetId: `${string}:${string}/${string}:${string}`;
309
+ name: string;
310
+ decimals: number;
311
+ icon?: string | null | undefined;
312
+ iconUrl?: string | null | undefined;
313
+ };
314
+ destAsset: {
315
+ symbol: string;
316
+ chainId: number;
317
+ address: string;
318
+ assetId: `${string}:${string}/${string}:${string}`;
319
+ name: string;
320
+ decimals: number;
321
+ icon?: string | null | undefined;
322
+ iconUrl?: string | null | undefined;
323
+ };
324
+ requestId: string;
325
+ srcTokenAmount: string;
326
+ destTokenAmount: string;
327
+ minDestTokenAmount: string;
328
+ feeData: {
329
+ metabridge: {
330
+ amount: string;
331
+ asset: {
332
+ symbol: string;
333
+ chainId: number;
334
+ address: string;
335
+ assetId: `${string}:${string}/${string}:${string}`;
336
+ name: string;
337
+ decimals: number;
338
+ icon?: string | null | undefined;
339
+ iconUrl?: string | null | undefined;
340
+ };
341
+ };
342
+ txFee?: ({
343
+ amount: string;
344
+ asset: {
345
+ symbol: string;
346
+ chainId: number;
347
+ address: string;
348
+ assetId: `${string}:${string}/${string}:${string}`;
349
+ name: string;
350
+ decimals: number;
351
+ icon?: string | null | undefined;
352
+ iconUrl?: string | null | undefined;
353
+ };
354
+ } & {
355
+ maxFeePerGas: string;
356
+ maxPriorityFeePerGas: string;
357
+ }) | undefined;
358
+ };
359
+ bridgeId: string;
360
+ bridges: string[];
361
+ steps: {
362
+ action: import("@metamask/bridge-controller").ActionTypes;
363
+ srcChainId: number;
364
+ srcAsset: {
365
+ symbol: string;
366
+ chainId: number;
367
+ address: string;
368
+ assetId: `${string}:${string}/${string}:${string}`;
369
+ name: string;
370
+ decimals: number;
371
+ icon?: string | null | undefined;
372
+ iconUrl?: string | null | undefined;
373
+ };
374
+ destAsset: {
375
+ symbol: string;
376
+ chainId: number;
377
+ address: string;
378
+ assetId: `${string}:${string}/${string}:${string}`;
379
+ name: string;
380
+ decimals: number;
381
+ icon?: string | null | undefined;
382
+ iconUrl?: string | null | undefined;
383
+ };
384
+ srcAmount: string;
385
+ destAmount: string;
386
+ protocol: {
387
+ name: string;
388
+ icon?: string | undefined;
389
+ displayName?: string | undefined;
390
+ };
391
+ destChainId?: number | undefined;
392
+ }[];
393
+ refuel?: {
394
+ action: import("@metamask/bridge-controller").ActionTypes;
395
+ srcChainId: number;
396
+ srcAsset: {
397
+ symbol: string;
398
+ chainId: number;
399
+ address: string;
400
+ assetId: `${string}:${string}/${string}:${string}`;
401
+ name: string;
402
+ decimals: number;
403
+ icon?: string | null | undefined;
404
+ iconUrl?: string | null | undefined;
405
+ };
406
+ destAsset: {
407
+ symbol: string;
408
+ chainId: number;
409
+ address: string;
410
+ assetId: `${string}:${string}/${string}:${string}`;
411
+ name: string;
412
+ decimals: number;
413
+ icon?: string | null | undefined;
414
+ iconUrl?: string | null | undefined;
415
+ };
416
+ srcAmount: string;
417
+ destAmount: string;
418
+ protocol: {
419
+ name: string;
420
+ icon?: string | undefined;
421
+ displayName?: string | undefined;
422
+ };
423
+ destChainId?: number | undefined;
424
+ } | undefined;
425
+ priceData?: {
426
+ totalFromAmountUsd?: string | undefined;
427
+ totalToAmountUsd?: string | undefined;
428
+ priceImpact?: string | undefined;
429
+ totalFeeAmountUsd?: string | undefined;
430
+ } | undefined;
431
+ intent?: {
432
+ protocol: string;
433
+ order: {
434
+ sellToken: `0x${string}`;
435
+ buyToken: `0x${string}`;
436
+ validTo: string | number;
437
+ appData: string;
438
+ appDataHash: `0x${string}`;
439
+ feeAmount: string;
440
+ kind: "buy" | "sell";
441
+ partiallyFillable: boolean;
442
+ receiver?: `0x${string}` | undefined;
443
+ sellAmount?: string | undefined;
444
+ buyAmount?: string | undefined;
445
+ from?: `0x${string}` | undefined;
446
+ };
447
+ typedData: {
448
+ types: Record<string, {
449
+ name: string;
450
+ type: string;
451
+ }[]>;
452
+ primaryType: string;
453
+ domain: Record<string, any>;
454
+ message: Record<string, any>;
455
+ };
456
+ settlementContract?: `0x${string}` | undefined;
457
+ } | undefined;
458
+ };
459
+ estimatedProcessingTimeInSeconds: number;
460
+ trade: string | {
461
+ chainId: number;
462
+ from: `0x${string}`;
463
+ to: `0x${string}`;
464
+ value: `0x${string}`;
465
+ data: `0x${string}`;
466
+ gasLimit: number | null;
467
+ effectiveGas?: number | undefined;
468
+ } | {
469
+ unsignedPsbtBase64: string;
470
+ inputsToSign: {}[] | null;
471
+ } | {
472
+ raw_data_hex: string;
473
+ visible?: boolean | undefined;
474
+ raw_data?: {
475
+ contract?: {
476
+ type?: string | undefined;
477
+ }[] | undefined;
478
+ fee_limit?: number | undefined;
479
+ } | null | undefined;
480
+ };
481
+ quoteId?: string | undefined;
482
+ approval?: {
483
+ chainId: number;
484
+ from: `0x${string}`;
485
+ to: `0x${string}`;
486
+ value: `0x${string}`;
487
+ data: `0x${string}`;
488
+ gasLimit: number | null;
489
+ effectiveGas?: number | undefined;
490
+ } | {
491
+ raw_data_hex: string;
492
+ visible?: boolean | undefined;
493
+ raw_data?: {
494
+ contract?: {
495
+ type?: string | undefined;
496
+ }[] | undefined;
497
+ fee_limit?: number | undefined;
498
+ } | null | undefined;
499
+ } | undefined;
500
+ } & {
501
+ trade: import("@metamask/bridge-controller").Trade;
502
+ approval?: import("@metamask/bridge-controller").Trade | undefined;
503
+ featureId?: import("@metamask/bridge-controller").FeatureId | undefined;
504
+ resetApproval?: {
505
+ chainId: number;
506
+ from: `0x${string}`;
507
+ to: `0x${string}`;
508
+ value: `0x${string}`;
509
+ data: `0x${string}`;
510
+ gasLimit: number | null;
511
+ effectiveGas?: number | undefined;
512
+ } | undefined;
513
+ quoteRequestIndex?: number | undefined;
514
+ } & import("@metamask/bridge-controller").QuoteMetadata)[], isStxEnabled: boolean, quotesReceivedContext?: (import("@metamask/bridge-controller").TradeData & {
296
515
  warnings: import("@metamask/bridge-controller").QuoteWarning[];
297
516
  best_quote_provider: `${string}_${string}` | undefined;
298
517
  price_impact: number;
299
518
  can_submit: boolean;
300
519
  usd_balance_source?: number | undefined;
520
+ has_sufficient_gas_for_quote?: boolean | null | undefined;
301
521
  } & {
302
522
  location?: import("@metamask/bridge-controller").MetaMetricsSwapsEventSource | undefined;
303
523
  ab_tests?: Record<string, string> | undefined;
@@ -308,7 +528,39 @@ export declare function getMessengerMock({ skipRegister, }?: {
308
528
  }) | undefined, location?: import("@metamask/bridge-controller").MetaMetricsSwapsEventSource | undefined, abTests?: Record<string, string> | undefined, activeAbTests?: {
309
529
  key: string;
310
530
  value: string;
311
- }[] | undefined, tokenSecurityTypeDestination?: string | null | undefined) => Promise<import("@metamask/transaction-controller").TransactionMeta & Partial<import("../../../bridge-status-controller/src/types.mjs").SolanaTransactionMeta>>>;
531
+ }[] | undefined, tokenSecurityTypeDestination?: string | null | undefined, batchSellTrades?: ({
532
+ transactions: ({
533
+ chainId: number;
534
+ from: `0x${string}`;
535
+ to: `0x${string}`;
536
+ value: `0x${string}`;
537
+ data: `0x${string}`;
538
+ gasLimit: number | null;
539
+ effectiveGas?: number | undefined;
540
+ } & {
541
+ maxFeePerGas: `0x${string}`;
542
+ maxPriorityFeePerGas: `0x${string}`;
543
+ } & {
544
+ type: import("@metamask/bridge-controller").BatchSellTransactionType;
545
+ })[];
546
+ fee?: {
547
+ amount: string;
548
+ asset: {
549
+ symbol: string;
550
+ chainId: number;
551
+ address: string;
552
+ assetId: `${string}:${string}/${string}:${string}`;
553
+ name: string;
554
+ decimals: number;
555
+ icon?: string | null | undefined;
556
+ iconUrl?: string | null | undefined;
557
+ };
558
+ } | undefined;
559
+ } & {
560
+ gasIncluded?: boolean | undefined;
561
+ gasIncluded7702?: boolean | undefined;
562
+ gasSponsored?: boolean | undefined;
563
+ }) | null | undefined) => Promise<import("@metamask/transaction-controller").TransactionMeta>>;
312
564
  updateTransactionMock: jest.MockedFn<(transactionMeta: import("@metamask/transaction-controller").TransactionMeta, note: string) => void>;
313
565
  };
314
566
  //# sourceMappingURL=messenger-mock.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messenger-mock.d.mts","sourceRoot":"","sources":["../../src/tests/messenger-mock.ts"],"names":[],"mappings":";AA4BA,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAW;AAa5D;;;;;;GAMG;AAEH,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,GACb,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkRjC"}
1
+ {"version":3,"file":"messenger-mock.d.mts","sourceRoot":"","sources":["../../src/tests/messenger-mock.ts"],"names":[],"mappings":";AA4BA,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAW;AAc5D;;;;;;GAMG;AAEH,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,GACb,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4RjC"}
@@ -27,6 +27,7 @@ export function getMessengerMock({ skipRegister, } = {}) {
27
27
  const getAccountTrackerControllerStateMock = jest.fn();
28
28
  const getNetworkClientByIdMock = jest.fn();
29
29
  const getDelegationTransactionMock = jest.fn();
30
+ const getPaymentOverrideDataMock = jest.fn().mockResolvedValue({ calls: [] });
30
31
  const polymarketGetDepositWalletAddressMock = jest.fn();
31
32
  const polymarketSubmitDepositWalletBatchMock = jest.fn();
32
33
  const getGasFeeTokensMock = jest.fn();
@@ -66,6 +67,7 @@ export function getMessengerMock({ skipRegister, } = {}) {
66
67
  messenger.registerActionHandler('CurrencyRateController:getState', getCurrencyRateControllerStateMock);
67
68
  messenger.registerActionHandler('NetworkController:getNetworkClientById', getNetworkClientByIdMock);
68
69
  messenger.registerActionHandler('TransactionPayController:getDelegationTransaction', getDelegationTransactionMock);
70
+ messenger.registerActionHandler('TransactionPayController:getPaymentOverrideData', getPaymentOverrideDataMock);
69
71
  messenger.registerActionHandler('TransactionPayController:polymarketGetDepositWalletAddress', polymarketGetDepositWalletAddressMock);
70
72
  messenger.registerActionHandler('TransactionPayController:polymarketSubmitDepositWalletBatch', polymarketSubmitDepositWalletBatchMock);
71
73
  messenger.registerActionHandler('TransactionController:getGasFeeTokens', getGasFeeTokensMock);
@@ -88,6 +90,7 @@ export function getMessengerMock({ skipRegister, } = {}) {
88
90
  getControllerStateMock,
89
91
  getCurrencyRateControllerStateMock,
90
92
  getDelegationTransactionMock,
93
+ getPaymentOverrideDataMock,
91
94
  getGasFeeControllerStateMock,
92
95
  getGasFeeTokensMock,
93
96
  getKeyringControllerStateMock,