@metamask/smart-transactions-controller 22.3.0 → 22.5.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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [22.5.0]
11
+
12
+ ### Changed
13
+
14
+ - Log the original transaction status ([#566](https://github.com/MetaMask/smart-transactions-controller/pull/566))
15
+
16
+ ## [22.4.0]
17
+
18
+ ### Added
19
+
20
+ - Add `origin` to sentinel metadata ([#564](https://github.com/MetaMask/smart-transactions-controller/pull/564))
21
+
10
22
  ## [22.3.0]
11
23
 
12
24
  ### Changed
@@ -710,7 +722,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
710
722
  - Add initial SmartTransactionsController ([#1](https://github.com/MetaMask/smart-transactions-controller/pull/1))
711
723
  - Initial commit
712
724
 
713
- [Unreleased]: https://github.com/MetaMask/smart-transactions-controller/compare/v22.3.0...HEAD
725
+ [Unreleased]: https://github.com/MetaMask/smart-transactions-controller/compare/v22.5.0...HEAD
726
+ [22.5.0]: https://github.com/MetaMask/smart-transactions-controller/compare/v22.4.0...v22.5.0
727
+ [22.4.0]: https://github.com/MetaMask/smart-transactions-controller/compare/v22.3.0...v22.4.0
714
728
  [22.3.0]: https://github.com/MetaMask/smart-transactions-controller/compare/v22.2.0...v22.3.0
715
729
  [22.2.0]: https://github.com/MetaMask/smart-transactions-controller/compare/v22.1.0...v22.2.0
716
730
  [22.1.0]: https://github.com/MetaMask/smart-transactions-controller/compare/v22.0.0...v22.1.0
package/dist/index.cjs CHANGED
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.selectSmartTransactionsFeatureFlagsForChain = exports.selectSmartTransactionsFeatureFlags = exports.getSmartTransactionMetricsSensitiveProperties = exports.getSmartTransactionMetricsProperties = exports.MetaMetricsEventCategory = exports.MetaMetricsEventName = exports.Kind = exports.Feature = exports.ClientId = exports.SmartTransactionStatuses = exports.SmartTransactionCancellationReason = exports.SmartTransactionMinedTx = exports.SmartTransactionsController = void 0;
3
+ exports.selectSmartTransactionsFeatureFlagsForChain = exports.selectSmartTransactionsFeatureFlags = exports.getSmartTransactionMetricsSensitiveProperties = exports.getSmartTransactionMetricsProperties = exports.MetaMetricsEventCategory = exports.MetaMetricsEventName = exports.Kind = exports.Feature = exports.ClientId = exports.OriginalTransactionStatus = exports.SmartTransactionStatuses = exports.SmartTransactionCancellationReason = exports.SmartTransactionMinedTx = exports.SmartTransactionsController = void 0;
4
4
  var SmartTransactionsController_1 = require("./SmartTransactionsController.cjs");
5
5
  Object.defineProperty(exports, "SmartTransactionsController", { enumerable: true, get: function () { return SmartTransactionsController_1.SmartTransactionsController; } });
6
6
  var types_1 = require("./types.cjs");
7
7
  Object.defineProperty(exports, "SmartTransactionMinedTx", { enumerable: true, get: function () { return types_1.SmartTransactionMinedTx; } });
8
8
  Object.defineProperty(exports, "SmartTransactionCancellationReason", { enumerable: true, get: function () { return types_1.SmartTransactionCancellationReason; } });
9
9
  Object.defineProperty(exports, "SmartTransactionStatuses", { enumerable: true, get: function () { return types_1.SmartTransactionStatuses; } });
10
+ Object.defineProperty(exports, "OriginalTransactionStatus", { enumerable: true, get: function () { return types_1.OriginalTransactionStatus; } });
10
11
  Object.defineProperty(exports, "ClientId", { enumerable: true, get: function () { return types_1.ClientId; } });
11
12
  Object.defineProperty(exports, "Feature", { enumerable: true, get: function () { return types_1.Feature; } });
12
13
  Object.defineProperty(exports, "Kind", { enumerable: true, get: function () { return types_1.Kind; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iFAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AAWpC,qCAgBiB;AANf,gHAAA,uBAAuB,OAAA;AACvB,2HAAA,kCAAkC,OAAA;AAClC,iHAAA,wBAAwB,OAAA;AACxB,iGAAA,QAAQ,OAAA;AACR,gGAAA,OAAO,OAAA;AACP,6FAAA,IAAI,OAAA;AAEN,6CAA6E;AAApE,iHAAA,oBAAoB,OAAA;AAAE,qHAAA,wBAAwB,OAAA;AACvD,qCAGiB;AAFf,6HAAA,oCAAoC,OAAA;AACpC,sIAAA,6CAA6C,OAAA;AAG/C,yBAAyB;AACzB,6CAIqB;AAHnB,gIAAA,mCAAmC,OAAA;AACnC,wIAAA,2CAA2C,OAAA","sourcesContent":["export { SmartTransactionsController } from './SmartTransactionsController';\nexport type {\n SmartTransactionsControllerMessenger,\n SmartTransactionsControllerState,\n SmartTransactionsControllerGetStateAction,\n SmartTransactionsControllerActions,\n SmartTransactionsControllerStateChangeEvent,\n SmartTransactionsControllerSmartTransactionEvent,\n SmartTransactionsControllerSmartTransactionConfirmationDoneEvent,\n SmartTransactionsControllerEvents,\n} from './SmartTransactionsController';\nexport {\n type Fee,\n type Fees,\n type IndividualTxFees,\n type FeatureFlags,\n type SmartTransaction,\n type SentinelMeta,\n type SignedTransactionWithMetadata,\n type SmartTransactionsNetworkConfig,\n type SmartTransactionsFeatureFlagsConfig,\n SmartTransactionMinedTx,\n SmartTransactionCancellationReason,\n SmartTransactionStatuses,\n ClientId,\n Feature,\n Kind,\n} from './types';\nexport { MetaMetricsEventName, MetaMetricsEventCategory } from './constants';\nexport {\n getSmartTransactionMetricsProperties,\n getSmartTransactionMetricsSensitiveProperties,\n} from './utils';\n\n// Feature flag selectors\nexport {\n selectSmartTransactionsFeatureFlags,\n selectSmartTransactionsFeatureFlagsForChain,\n type SmartTransactionsFeatureFlagsState,\n} from './selectors';\n"]}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iFAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AAWpC,qCAiBiB;AAPf,gHAAA,uBAAuB,OAAA;AACvB,2HAAA,kCAAkC,OAAA;AAClC,iHAAA,wBAAwB,OAAA;AACxB,kHAAA,yBAAyB,OAAA;AACzB,iGAAA,QAAQ,OAAA;AACR,gGAAA,OAAO,OAAA;AACP,6FAAA,IAAI,OAAA;AAEN,6CAA6E;AAApE,iHAAA,oBAAoB,OAAA;AAAE,qHAAA,wBAAwB,OAAA;AACvD,qCAGiB;AAFf,6HAAA,oCAAoC,OAAA;AACpC,sIAAA,6CAA6C,OAAA;AAG/C,yBAAyB;AACzB,6CAIqB;AAHnB,gIAAA,mCAAmC,OAAA;AACnC,wIAAA,2CAA2C,OAAA","sourcesContent":["export { SmartTransactionsController } from './SmartTransactionsController';\nexport type {\n SmartTransactionsControllerMessenger,\n SmartTransactionsControllerState,\n SmartTransactionsControllerGetStateAction,\n SmartTransactionsControllerActions,\n SmartTransactionsControllerStateChangeEvent,\n SmartTransactionsControllerSmartTransactionEvent,\n SmartTransactionsControllerSmartTransactionConfirmationDoneEvent,\n SmartTransactionsControllerEvents,\n} from './SmartTransactionsController';\nexport {\n type Fee,\n type Fees,\n type IndividualTxFees,\n type FeatureFlags,\n type SmartTransaction,\n type SentinelMeta,\n type SignedTransactionWithMetadata,\n type SmartTransactionsNetworkConfig,\n type SmartTransactionsFeatureFlagsConfig,\n SmartTransactionMinedTx,\n SmartTransactionCancellationReason,\n SmartTransactionStatuses,\n OriginalTransactionStatus,\n ClientId,\n Feature,\n Kind,\n} from './types';\nexport { MetaMetricsEventName, MetaMetricsEventCategory } from './constants';\nexport {\n getSmartTransactionMetricsProperties,\n getSmartTransactionMetricsSensitiveProperties,\n} from './utils';\n\n// Feature flag selectors\nexport {\n selectSmartTransactionsFeatureFlags,\n selectSmartTransactionsFeatureFlagsForChain,\n type SmartTransactionsFeatureFlagsState,\n} from './selectors';\n"]}
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { SmartTransactionsController } from "./SmartTransactionsController.cjs";
2
2
  export type { SmartTransactionsControllerMessenger, SmartTransactionsControllerState, SmartTransactionsControllerGetStateAction, SmartTransactionsControllerActions, SmartTransactionsControllerStateChangeEvent, SmartTransactionsControllerSmartTransactionEvent, SmartTransactionsControllerSmartTransactionConfirmationDoneEvent, SmartTransactionsControllerEvents, } from "./SmartTransactionsController.cjs";
3
- export { type Fee, type Fees, type IndividualTxFees, type FeatureFlags, type SmartTransaction, type SentinelMeta, type SignedTransactionWithMetadata, type SmartTransactionsNetworkConfig, type SmartTransactionsFeatureFlagsConfig, SmartTransactionMinedTx, SmartTransactionCancellationReason, SmartTransactionStatuses, ClientId, Feature, Kind, } from "./types.cjs";
3
+ export { type Fee, type Fees, type IndividualTxFees, type FeatureFlags, type SmartTransaction, type SentinelMeta, type SignedTransactionWithMetadata, type SmartTransactionsNetworkConfig, type SmartTransactionsFeatureFlagsConfig, SmartTransactionMinedTx, SmartTransactionCancellationReason, SmartTransactionStatuses, OriginalTransactionStatus, ClientId, Feature, Kind, } from "./types.cjs";
4
4
  export { MetaMetricsEventName, MetaMetricsEventCategory } from "./constants.cjs";
5
5
  export { getSmartTransactionMetricsProperties, getSmartTransactionMetricsSensitiveProperties, } from "./utils.cjs";
6
6
  export { selectSmartTransactionsFeatureFlags, selectSmartTransactionsFeatureFlagsForChain, type SmartTransactionsFeatureFlagsState, } from "./selectors.cjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAsC;AAC5E,YAAY,EACV,oCAAoC,EACpC,gCAAgC,EAChC,yCAAyC,EACzC,kCAAkC,EAClC,2CAA2C,EAC3C,gDAAgD,EAChD,gEAAgE,EAChE,iCAAiC,GAClC,0CAAsC;AACvC,OAAO,EACL,KAAK,GAAG,EACR,KAAK,IAAI,EACT,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,mCAAmC,EACxC,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,QAAQ,EACR,OAAO,EACP,IAAI,GACL,oBAAgB;AACjB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,wBAAoB;AAC7E,OAAO,EACL,oCAAoC,EACpC,6CAA6C,GAC9C,oBAAgB;AAGjB,OAAO,EACL,mCAAmC,EACnC,2CAA2C,EAC3C,KAAK,kCAAkC,GACxC,wBAAoB"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAsC;AAC5E,YAAY,EACV,oCAAoC,EACpC,gCAAgC,EAChC,yCAAyC,EACzC,kCAAkC,EAClC,2CAA2C,EAC3C,gDAAgD,EAChD,gEAAgE,EAChE,iCAAiC,GAClC,0CAAsC;AACvC,OAAO,EACL,KAAK,GAAG,EACR,KAAK,IAAI,EACT,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,mCAAmC,EACxC,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,yBAAyB,EACzB,QAAQ,EACR,OAAO,EACP,IAAI,GACL,oBAAgB;AACjB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,wBAAoB;AAC7E,OAAO,EACL,oCAAoC,EACpC,6CAA6C,GAC9C,oBAAgB;AAGjB,OAAO,EACL,mCAAmC,EACnC,2CAA2C,EAC3C,KAAK,kCAAkC,GACxC,wBAAoB"}
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { SmartTransactionsController } from "./SmartTransactionsController.mjs";
2
2
  export type { SmartTransactionsControllerMessenger, SmartTransactionsControllerState, SmartTransactionsControllerGetStateAction, SmartTransactionsControllerActions, SmartTransactionsControllerStateChangeEvent, SmartTransactionsControllerSmartTransactionEvent, SmartTransactionsControllerSmartTransactionConfirmationDoneEvent, SmartTransactionsControllerEvents, } from "./SmartTransactionsController.mjs";
3
- export { type Fee, type Fees, type IndividualTxFees, type FeatureFlags, type SmartTransaction, type SentinelMeta, type SignedTransactionWithMetadata, type SmartTransactionsNetworkConfig, type SmartTransactionsFeatureFlagsConfig, SmartTransactionMinedTx, SmartTransactionCancellationReason, SmartTransactionStatuses, ClientId, Feature, Kind, } from "./types.mjs";
3
+ export { type Fee, type Fees, type IndividualTxFees, type FeatureFlags, type SmartTransaction, type SentinelMeta, type SignedTransactionWithMetadata, type SmartTransactionsNetworkConfig, type SmartTransactionsFeatureFlagsConfig, SmartTransactionMinedTx, SmartTransactionCancellationReason, SmartTransactionStatuses, OriginalTransactionStatus, ClientId, Feature, Kind, } from "./types.mjs";
4
4
  export { MetaMetricsEventName, MetaMetricsEventCategory } from "./constants.mjs";
5
5
  export { getSmartTransactionMetricsProperties, getSmartTransactionMetricsSensitiveProperties, } from "./utils.mjs";
6
6
  export { selectSmartTransactionsFeatureFlags, selectSmartTransactionsFeatureFlagsForChain, type SmartTransactionsFeatureFlagsState, } from "./selectors.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAsC;AAC5E,YAAY,EACV,oCAAoC,EACpC,gCAAgC,EAChC,yCAAyC,EACzC,kCAAkC,EAClC,2CAA2C,EAC3C,gDAAgD,EAChD,gEAAgE,EAChE,iCAAiC,GAClC,0CAAsC;AACvC,OAAO,EACL,KAAK,GAAG,EACR,KAAK,IAAI,EACT,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,mCAAmC,EACxC,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,QAAQ,EACR,OAAO,EACP,IAAI,GACL,oBAAgB;AACjB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,wBAAoB;AAC7E,OAAO,EACL,oCAAoC,EACpC,6CAA6C,GAC9C,oBAAgB;AAGjB,OAAO,EACL,mCAAmC,EACnC,2CAA2C,EAC3C,KAAK,kCAAkC,GACxC,wBAAoB"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAsC;AAC5E,YAAY,EACV,oCAAoC,EACpC,gCAAgC,EAChC,yCAAyC,EACzC,kCAAkC,EAClC,2CAA2C,EAC3C,gDAAgD,EAChD,gEAAgE,EAChE,iCAAiC,GAClC,0CAAsC;AACvC,OAAO,EACL,KAAK,GAAG,EACR,KAAK,IAAI,EACT,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,mCAAmC,EACxC,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,yBAAyB,EACzB,QAAQ,EACR,OAAO,EACP,IAAI,GACL,oBAAgB;AACjB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,wBAAoB;AAC7E,OAAO,EACL,oCAAoC,EACpC,6CAA6C,GAC9C,oBAAgB;AAGjB,OAAO,EACL,mCAAmC,EACnC,2CAA2C,EAC3C,KAAK,kCAAkC,GACxC,wBAAoB"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  export { SmartTransactionsController } from "./SmartTransactionsController.mjs";
2
- export { SmartTransactionMinedTx, SmartTransactionCancellationReason, SmartTransactionStatuses, ClientId, Feature, Kind } from "./types.mjs";
2
+ export { SmartTransactionMinedTx, SmartTransactionCancellationReason, SmartTransactionStatuses, OriginalTransactionStatus, ClientId, Feature, Kind } from "./types.mjs";
3
3
  export { MetaMetricsEventName, MetaMetricsEventCategory } from "./constants.mjs";
4
4
  export { getSmartTransactionMetricsProperties, getSmartTransactionMetricsSensitiveProperties } from "./utils.mjs";
5
5
  // Feature flag selectors
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAsC;AAW5E,OAAO,EAUL,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,QAAQ,EACR,OAAO,EACP,IAAI,EACL,oBAAgB;AACjB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,wBAAoB;AAC7E,OAAO,EACL,oCAAoC,EACpC,6CAA6C,EAC9C,oBAAgB;AAEjB,yBAAyB;AACzB,OAAO,EACL,mCAAmC,EACnC,2CAA2C,EAE5C,wBAAoB","sourcesContent":["export { SmartTransactionsController } from './SmartTransactionsController';\nexport type {\n SmartTransactionsControllerMessenger,\n SmartTransactionsControllerState,\n SmartTransactionsControllerGetStateAction,\n SmartTransactionsControllerActions,\n SmartTransactionsControllerStateChangeEvent,\n SmartTransactionsControllerSmartTransactionEvent,\n SmartTransactionsControllerSmartTransactionConfirmationDoneEvent,\n SmartTransactionsControllerEvents,\n} from './SmartTransactionsController';\nexport {\n type Fee,\n type Fees,\n type IndividualTxFees,\n type FeatureFlags,\n type SmartTransaction,\n type SentinelMeta,\n type SignedTransactionWithMetadata,\n type SmartTransactionsNetworkConfig,\n type SmartTransactionsFeatureFlagsConfig,\n SmartTransactionMinedTx,\n SmartTransactionCancellationReason,\n SmartTransactionStatuses,\n ClientId,\n Feature,\n Kind,\n} from './types';\nexport { MetaMetricsEventName, MetaMetricsEventCategory } from './constants';\nexport {\n getSmartTransactionMetricsProperties,\n getSmartTransactionMetricsSensitiveProperties,\n} from './utils';\n\n// Feature flag selectors\nexport {\n selectSmartTransactionsFeatureFlags,\n selectSmartTransactionsFeatureFlagsForChain,\n type SmartTransactionsFeatureFlagsState,\n} from './selectors';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAsC;AAW5E,OAAO,EAUL,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,yBAAyB,EACzB,QAAQ,EACR,OAAO,EACP,IAAI,EACL,oBAAgB;AACjB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,wBAAoB;AAC7E,OAAO,EACL,oCAAoC,EACpC,6CAA6C,EAC9C,oBAAgB;AAEjB,yBAAyB;AACzB,OAAO,EACL,mCAAmC,EACnC,2CAA2C,EAE5C,wBAAoB","sourcesContent":["export { SmartTransactionsController } from './SmartTransactionsController';\nexport type {\n SmartTransactionsControllerMessenger,\n SmartTransactionsControllerState,\n SmartTransactionsControllerGetStateAction,\n SmartTransactionsControllerActions,\n SmartTransactionsControllerStateChangeEvent,\n SmartTransactionsControllerSmartTransactionEvent,\n SmartTransactionsControllerSmartTransactionConfirmationDoneEvent,\n SmartTransactionsControllerEvents,\n} from './SmartTransactionsController';\nexport {\n type Fee,\n type Fees,\n type IndividualTxFees,\n type FeatureFlags,\n type SmartTransaction,\n type SentinelMeta,\n type SignedTransactionWithMetadata,\n type SmartTransactionsNetworkConfig,\n type SmartTransactionsFeatureFlagsConfig,\n SmartTransactionMinedTx,\n SmartTransactionCancellationReason,\n SmartTransactionStatuses,\n OriginalTransactionStatus,\n ClientId,\n Feature,\n Kind,\n} from './types';\nexport { MetaMetricsEventName, MetaMetricsEventCategory } from './constants';\nexport {\n getSmartTransactionMetricsProperties,\n getSmartTransactionMetricsSensitiveProperties,\n} from './utils';\n\n// Feature flag selectors\nexport {\n selectSmartTransactionsFeatureFlags,\n selectSmartTransactionsFeatureFlagsForChain,\n type SmartTransactionsFeatureFlagsState,\n} from './selectors';\n"]}
package/dist/types.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cancellationReasonToStatusMap = exports.ClientId = exports.SmartTransactionStatuses = exports.SmartTransactionCancellationReason = exports.SmartTransactionMinedTx = exports.APIType = exports.Kind = exports.Feature = void 0;
3
+ exports.cancellationReasonToStatusMap = exports.OriginalTransactionStatus = exports.ClientId = exports.SmartTransactionStatuses = exports.SmartTransactionCancellationReason = exports.SmartTransactionMinedTx = exports.APIType = exports.Kind = exports.Feature = void 0;
4
4
  // This list does not belong here, but as these are reported to tx-sentinel, it is ok to have it here for now.
5
5
  var Feature;
6
6
  (function (Feature) {
@@ -64,6 +64,26 @@ var ClientId;
64
64
  ClientId["Mobile"] = "mobile";
65
65
  ClientId["Extension"] = "extension";
66
66
  })(ClientId = exports.ClientId || (exports.ClientId = {}));
67
+ var OriginalTransactionStatus;
68
+ (function (OriginalTransactionStatus) {
69
+ OriginalTransactionStatus["PENDING"] = "PENDING";
70
+ OriginalTransactionStatus["PENDING_CANCELLED"] = "PENDING_CANCELLED";
71
+ OriginalTransactionStatus["VALIDATED"] = "VALIDATED";
72
+ OriginalTransactionStatus["REVERTED"] = "REVERTED";
73
+ OriginalTransactionStatus["NONCE_TOO_LOW"] = "NONCE_TOO_LOW";
74
+ OriginalTransactionStatus["CANCELLED"] = "CANCELLED";
75
+ OriginalTransactionStatus["FAILED"] = "FAILED";
76
+ OriginalTransactionStatus["FAILED_WOULD_REVERT"] = "FAILED_WOULD_REVERT";
77
+ OriginalTransactionStatus["FAILED_INSUFFICIENT_FUNDS"] = "FAILED_INSUFFICIENT_FUNDS";
78
+ OriginalTransactionStatus["FAILED_UNKNOWN"] = "FAILED_UNKNOWN";
79
+ OriginalTransactionStatus["FAILED_TIMEOUT"] = "FAILED_TIMEOUT";
80
+ OriginalTransactionStatus["FAILED_GAS_TOO_LOW"] = "FAILED_GAS_TOO_LOW";
81
+ OriginalTransactionStatus["FAILED_NONCE_TOO_HIGH"] = "FAILED_NONCE_TOO_HIGH";
82
+ OriginalTransactionStatus["LEAKED_VALIDATED"] = "LEAKED_VALIDATED";
83
+ OriginalTransactionStatus["LEAKED_REVERTED"] = "LEAKED_REVERTED";
84
+ OriginalTransactionStatus["CANCELLED_LEAKED_VALIDATED"] = "CANCELLED_LEAKED_VALIDATED";
85
+ OriginalTransactionStatus["CANCELLED_LEAKED_REVERTED"] = "CANCELLED_LEAKED_REVERTED";
86
+ })(OriginalTransactionStatus = exports.OriginalTransactionStatus || (exports.OriginalTransactionStatus = {}));
67
87
  exports.cancellationReasonToStatusMap = {
68
88
  [SmartTransactionCancellationReason.WOULD_REVERT]: SmartTransactionStatuses.CANCELLED,
69
89
  [SmartTransactionCancellationReason.TOO_CHEAP]: SmartTransactionStatuses.CANCELLED,
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAcA,8GAA8G;AAC9G,IAAY,OAUX;AAVD,WAAY,OAAO;IACjB,wBAAa,CAAA;IACb,8BAAmB,CAAA;IACnB,wBAAa,CAAA;IACb,oCAAyB,CAAA;IACzB,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,4BAAiB,CAAA;IACjB,8CAAmC,CAAA;AACrC,CAAC,EAVW,OAAO,GAAP,eAAO,KAAP,eAAO,QAUlB;AAED,IAAY,IAKX;AALD,WAAY,IAAI;IACd,2BAAmB,CAAA;IACnB,mBAAW,CAAA;IACX,+CAAuC,CAAA;IACvC,yCAAiC,CAAA;AACnC,CAAC,EALW,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAKf;AAED,UAAU;AACV,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,6CAAU,CAAA;IACV,qDAAc,CAAA;IACd,mEAAqB,CAAA;IACrB,yCAAQ,CAAA;IACR,qDAAc,CAAA;IACd,6CAAU,CAAA;AACZ,CAAC,EAPW,OAAO,GAAP,eAAO,KAAP,eAAO,QAOlB;AAED,wBAAwB;AACxB,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,kDAAuB,CAAA;IACvB,8CAAmB,CAAA;IACnB,kDAAuB,CAAA;IACvB,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;AACrB,CAAC,EANW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAMlC;AAED,IAAY,kCAOX;AAPD,WAAY,kCAAkC;IAC5C,mEAA6B,CAAA;IAC7B,6DAAuB,CAAA;IACvB,yEAAmC,CAAA;IACnC,qEAA+B,CAAA;IAC/B,uEAAiC,CAAA;IACjC,qEAA+B,CAAA;AACjC,CAAC,EAPW,kCAAkC,GAAlC,0CAAkC,KAAlC,0CAAkC,QAO7C;AAED,IAAY,wBAQX;AARD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,+CAAmB,CAAA;IACnB,iDAAqB,CAAA;IACrB,+CAAmB,CAAA;IACnB,mDAAuB,CAAA;IACvB,iFAAqD,CAAA;IACrD,iDAAqB,CAAA;AACvB,CAAC,EARW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAQnC;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAEY,QAAA,6BAA6B,GAAG;IAC3C,CAAC,kCAAkC,CAAC,YAAY,CAAC,EAC/C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,SAAS,CAAC,EAC5C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,eAAe,CAAC,EAClD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,aAAa,CAAC,EAChD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,cAAc,CAAC,EACjD,wBAAwB,CAAC,wBAAwB;CACpD,CAAC","sourcesContent":["import type { NetworkClientId } from '@metamask/network-controller';\nimport type { TransactionType } from '@metamask/transaction-controller';\nimport type { CaipChainId, Hex } from '@metamask/utils';\n\nimport type { SmartTransactionsNetworkConfig } from './featureFlags';\n\nexport type SentinelMeta = {\n txType?: TransactionType;\n feature?: Feature;\n kind?: Kind;\n client?: string;\n wallet?: string;\n};\n\n// This list does not belong here, but as these are reported to tx-sentinel, it is ok to have it here for now.\nexport enum Feature {\n Swap = 'Swap',\n Staking = 'Staking',\n Ramp = 'Ramp',\n Prediction = 'Prediction',\n Perp = 'Perp',\n Earn = 'Earn',\n Card = 'Card',\n Bridge = 'Bridge',\n dAppTransaction = 'dAppTransaction',\n}\n\nexport enum Kind {\n Regular = 'Regular',\n STX = 'STX',\n GaslessSendBundle = 'GaslessSendBundle',\n GaslessEIP7702 = 'GaslessEIP7702',\n}\n\n/** API */\nexport enum APIType {\n 'GET_FEES',\n 'ESTIMATE_GAS',\n 'SUBMIT_TRANSACTIONS',\n 'CANCEL',\n 'BATCH_STATUS',\n 'LIVENESS',\n}\n\n/** SmartTransactions */\nexport enum SmartTransactionMinedTx {\n NOT_MINED = 'not_mined',\n SUCCESS = 'success',\n CANCELLED = 'cancelled',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n}\n\nexport enum SmartTransactionCancellationReason {\n WOULD_REVERT = 'would_revert',\n TOO_CHEAP = 'too_cheap',\n DEADLINE_MISSED = 'deadline_missed',\n INVALID_NONCE = 'invalid_nonce',\n USER_CANCELLED = 'user_cancelled',\n NOT_CANCELLED = 'not_cancelled',\n}\n\nexport enum SmartTransactionStatuses {\n PENDING = 'pending',\n SUCCESS = 'success',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n CANCELLED = 'cancelled',\n CANCELLED_USER_CANCELLED = 'cancelled_user_cancelled',\n RESOLVED = 'resolved',\n}\n\nexport enum ClientId {\n Mobile = 'mobile',\n Extension = 'extension',\n}\n\nexport const cancellationReasonToStatusMap = {\n [SmartTransactionCancellationReason.WOULD_REVERT]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.TOO_CHEAP]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.DEADLINE_MISSED]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.INVALID_NONCE]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.USER_CANCELLED]:\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n};\n\nexport type SmartTransactionsStatus = {\n error?: string;\n cancellationFeeWei: number;\n cancellationReason?: SmartTransactionCancellationReason;\n deadlineRatio: number;\n minedHash: string;\n minedTx: SmartTransactionMinedTx;\n isSettled: boolean;\n duplicated?: boolean;\n timedOut?: boolean;\n proxied?: boolean;\n};\n\nexport type SmartTransaction = {\n uuid: string;\n txHash?: string;\n txHashes?: string[];\n chainId?: string;\n destinationTokenAddress?: string;\n destinationTokenDecimals?: string;\n destinationTokenSymbol?: string;\n history?: any;\n nonceDetails?: any;\n origin?: string;\n preTxBalance?: string;\n status?: string;\n statusMetadata?: SmartTransactionsStatus;\n sourceTokenSymbol?: string;\n swapMetaData?: any;\n swapTokenValue?: string;\n time?: number; // @deprecated We should use creationTime instead.\n creationTime?: number;\n txParams?: any;\n type?: string;\n confirmed?: boolean;\n cancellable?: boolean;\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n transactionId?: string; // It's an ID for a regular transaction from the TransactionController.\n networkClientId?: NetworkClientId;\n};\n\nexport type Fee = {\n maxFeePerGas: number;\n maxPriorityFeePerGas: number;\n};\n\nexport type IndividualTxFees = {\n fees: Fee[];\n cancelFees: Fee[];\n feeEstimate: number;\n gasLimit: number;\n gasUsed: number;\n};\n\nexport type Fees = {\n approvalTxFees: IndividualTxFees | null;\n tradeTxFees: IndividualTxFees | null;\n};\n\n// TODO\nexport type UnsignedTransaction = any;\n\n// TODO\nexport type SignedTransaction = any;\n\nexport type SignedTransactionWithMetadata = {\n tx: string;\n metadata?: SentinelMeta;\n};\n\n// TODO\nexport type SignedCanceledTransaction = any;\n\nexport type MetaMetricsProps = {\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n};\n\nexport type FeatureFlags = {\n smartTransactions?: {\n mobileReturnTxHashAsap?: boolean;\n extensionReturnTxHashAsap?: boolean;\n };\n};\n\n/**\n * Configuration for smart transactions on a specific network.\n * These flags control feature availability and behavior per chain.\n *\n * This type is inferred from the SmartTransactionsNetworkConfigSchema.\n * To add a new field, update the schema in `src/featureFlags/validators.ts`.\n */\nexport type { SmartTransactionsNetworkConfig };\n\n/**\n * Feature flags configuration for smart transactions across all networks.\n * Contains a default configuration and optional chain-specific overrides.\n */\nexport type SmartTransactionsFeatureFlagsConfig = {\n /** Default configuration applied to all chains unless overridden */\n default?: SmartTransactionsNetworkConfig;\n} & {\n /**\n * Chain-specific configuration overrides, keyed by chain ID.\n * Supports both hex (e.g., \"0x1\") and CAIP-2 format (e.g., \"eip155:1\", \"solana:...\")\n */\n [chainId: Hex | CaipChainId]: SmartTransactionsNetworkConfig | undefined;\n};\n"]}
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAeA,8GAA8G;AAC9G,IAAY,OAUX;AAVD,WAAY,OAAO;IACjB,wBAAa,CAAA;IACb,8BAAmB,CAAA;IACnB,wBAAa,CAAA;IACb,oCAAyB,CAAA;IACzB,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,4BAAiB,CAAA;IACjB,8CAAmC,CAAA;AACrC,CAAC,EAVW,OAAO,GAAP,eAAO,KAAP,eAAO,QAUlB;AAED,IAAY,IAKX;AALD,WAAY,IAAI;IACd,2BAAmB,CAAA;IACnB,mBAAW,CAAA;IACX,+CAAuC,CAAA;IACvC,yCAAiC,CAAA;AACnC,CAAC,EALW,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAKf;AAED,UAAU;AACV,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,6CAAU,CAAA;IACV,qDAAc,CAAA;IACd,mEAAqB,CAAA;IACrB,yCAAQ,CAAA;IACR,qDAAc,CAAA;IACd,6CAAU,CAAA;AACZ,CAAC,EAPW,OAAO,GAAP,eAAO,KAAP,eAAO,QAOlB;AAED,wBAAwB;AACxB,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,kDAAuB,CAAA;IACvB,8CAAmB,CAAA;IACnB,kDAAuB,CAAA;IACvB,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;AACrB,CAAC,EANW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAMlC;AAED,IAAY,kCAOX;AAPD,WAAY,kCAAkC;IAC5C,mEAA6B,CAAA;IAC7B,6DAAuB,CAAA;IACvB,yEAAmC,CAAA;IACnC,qEAA+B,CAAA;IAC/B,uEAAiC,CAAA;IACjC,qEAA+B,CAAA;AACjC,CAAC,EAPW,kCAAkC,GAAlC,0CAAkC,KAAlC,0CAAkC,QAO7C;AAED,IAAY,wBAQX;AARD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,+CAAmB,CAAA;IACnB,iDAAqB,CAAA;IACrB,+CAAmB,CAAA;IACnB,mDAAuB,CAAA;IACvB,iFAAqD,CAAA;IACrD,iDAAqB,CAAA;AACvB,CAAC,EARW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAQnC;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAED,IAAY,yBAqBX;AArBD,WAAY,yBAAyB;IACnC,gDAAmB,CAAA;IACnB,oEAAuC,CAAA;IAEvC,oDAAuB,CAAA;IACvB,kDAAqB,CAAA;IACrB,4DAA+B,CAAA;IAC/B,oDAAuB,CAAA;IAEvB,8CAAiB,CAAA;IACjB,wEAA2C,CAAA;IAC3C,oFAAuD,CAAA;IACvD,8DAAiC,CAAA;IACjC,8DAAiC,CAAA;IACjC,sEAAyC,CAAA;IACzC,4EAA+C,CAAA;IAE/C,kEAAqC,CAAA;IACrC,gEAAmC,CAAA;IACnC,sFAAyD,CAAA;IACzD,oFAAuD,CAAA;AACzD,CAAC,EArBW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAqBpC;AAEY,QAAA,6BAA6B,GAAG;IAC3C,CAAC,kCAAkC,CAAC,YAAY,CAAC,EAC/C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,SAAS,CAAC,EAC5C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,eAAe,CAAC,EAClD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,aAAa,CAAC,EAChD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,cAAc,CAAC,EACjD,wBAAwB,CAAC,wBAAwB;CACpD,CAAC","sourcesContent":["import type { NetworkClientId } from '@metamask/network-controller';\nimport type { TransactionType } from '@metamask/transaction-controller';\nimport type { CaipChainId, Hex } from '@metamask/utils';\n\nimport type { SmartTransactionsNetworkConfig } from './featureFlags';\n\nexport type SentinelMeta = {\n txType?: TransactionType;\n feature?: Feature;\n kind?: Kind;\n client?: string;\n wallet?: string;\n origin?: string;\n};\n\n// This list does not belong here, but as these are reported to tx-sentinel, it is ok to have it here for now.\nexport enum Feature {\n Swap = 'Swap',\n Staking = 'Staking',\n Ramp = 'Ramp',\n Prediction = 'Prediction',\n Perp = 'Perp',\n Earn = 'Earn',\n Card = 'Card',\n Bridge = 'Bridge',\n dAppTransaction = 'dAppTransaction',\n}\n\nexport enum Kind {\n Regular = 'Regular',\n STX = 'STX',\n GaslessSendBundle = 'GaslessSendBundle',\n GaslessEIP7702 = 'GaslessEIP7702',\n}\n\n/** API */\nexport enum APIType {\n 'GET_FEES',\n 'ESTIMATE_GAS',\n 'SUBMIT_TRANSACTIONS',\n 'CANCEL',\n 'BATCH_STATUS',\n 'LIVENESS',\n}\n\n/** SmartTransactions */\nexport enum SmartTransactionMinedTx {\n NOT_MINED = 'not_mined',\n SUCCESS = 'success',\n CANCELLED = 'cancelled',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n}\n\nexport enum SmartTransactionCancellationReason {\n WOULD_REVERT = 'would_revert',\n TOO_CHEAP = 'too_cheap',\n DEADLINE_MISSED = 'deadline_missed',\n INVALID_NONCE = 'invalid_nonce',\n USER_CANCELLED = 'user_cancelled',\n NOT_CANCELLED = 'not_cancelled',\n}\n\nexport enum SmartTransactionStatuses {\n PENDING = 'pending',\n SUCCESS = 'success',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n CANCELLED = 'cancelled',\n CANCELLED_USER_CANCELLED = 'cancelled_user_cancelled',\n RESOLVED = 'resolved',\n}\n\nexport enum ClientId {\n Mobile = 'mobile',\n Extension = 'extension',\n}\n\nexport enum OriginalTransactionStatus {\n PENDING = 'PENDING',\n PENDING_CANCELLED = 'PENDING_CANCELLED',\n\n VALIDATED = 'VALIDATED',\n REVERTED = 'REVERTED',\n NONCE_TOO_LOW = 'NONCE_TOO_LOW',\n CANCELLED = 'CANCELLED',\n\n FAILED = 'FAILED',\n FAILED_WOULD_REVERT = 'FAILED_WOULD_REVERT',\n FAILED_INSUFFICIENT_FUNDS = 'FAILED_INSUFFICIENT_FUNDS',\n FAILED_UNKNOWN = 'FAILED_UNKNOWN',\n FAILED_TIMEOUT = 'FAILED_TIMEOUT',\n FAILED_GAS_TOO_LOW = 'FAILED_GAS_TOO_LOW',\n FAILED_NONCE_TOO_HIGH = 'FAILED_NONCE_TOO_HIGH',\n\n LEAKED_VALIDATED = 'LEAKED_VALIDATED',\n LEAKED_REVERTED = 'LEAKED_REVERTED',\n CANCELLED_LEAKED_VALIDATED = 'CANCELLED_LEAKED_VALIDATED',\n CANCELLED_LEAKED_REVERTED = 'CANCELLED_LEAKED_REVERTED',\n}\n\nexport const cancellationReasonToStatusMap = {\n [SmartTransactionCancellationReason.WOULD_REVERT]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.TOO_CHEAP]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.DEADLINE_MISSED]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.INVALID_NONCE]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.USER_CANCELLED]:\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n};\n\nexport type SmartTransactionsStatus = {\n error?: string;\n cancellationFeeWei: number;\n cancellationReason?: SmartTransactionCancellationReason;\n originalTransactionStatus?: OriginalTransactionStatus;\n deadlineRatio: number;\n minedHash: string;\n minedTx: SmartTransactionMinedTx;\n isSettled: boolean;\n duplicated?: boolean;\n timedOut?: boolean;\n proxied?: boolean;\n};\n\nexport type SmartTransaction = {\n uuid: string;\n txHash?: string;\n txHashes?: string[];\n chainId?: string;\n destinationTokenAddress?: string;\n destinationTokenDecimals?: string;\n destinationTokenSymbol?: string;\n history?: any;\n nonceDetails?: any;\n origin?: string;\n preTxBalance?: string;\n status?: string;\n statusMetadata?: SmartTransactionsStatus;\n sourceTokenSymbol?: string;\n swapMetaData?: any;\n swapTokenValue?: string;\n time?: number; // @deprecated We should use creationTime instead.\n creationTime?: number;\n txParams?: any;\n type?: string;\n confirmed?: boolean;\n cancellable?: boolean;\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n transactionId?: string; // It's an ID for a regular transaction from the TransactionController.\n networkClientId?: NetworkClientId;\n};\n\nexport type Fee = {\n maxFeePerGas: number;\n maxPriorityFeePerGas: number;\n};\n\nexport type IndividualTxFees = {\n fees: Fee[];\n cancelFees: Fee[];\n feeEstimate: number;\n gasLimit: number;\n gasUsed: number;\n};\n\nexport type Fees = {\n approvalTxFees: IndividualTxFees | null;\n tradeTxFees: IndividualTxFees | null;\n};\n\n// TODO\nexport type UnsignedTransaction = any;\n\n// TODO\nexport type SignedTransaction = any;\n\nexport type SignedTransactionWithMetadata = {\n tx: string;\n metadata?: SentinelMeta;\n};\n\n// TODO\nexport type SignedCanceledTransaction = any;\n\nexport type MetaMetricsProps = {\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n};\n\nexport type FeatureFlags = {\n smartTransactions?: {\n mobileReturnTxHashAsap?: boolean;\n extensionReturnTxHashAsap?: boolean;\n };\n};\n\n/**\n * Configuration for smart transactions on a specific network.\n * These flags control feature availability and behavior per chain.\n *\n * This type is inferred from the SmartTransactionsNetworkConfigSchema.\n * To add a new field, update the schema in `src/featureFlags/validators.ts`.\n */\nexport type { SmartTransactionsNetworkConfig };\n\n/**\n * Feature flags configuration for smart transactions across all networks.\n * Contains a default configuration and optional chain-specific overrides.\n */\nexport type SmartTransactionsFeatureFlagsConfig = {\n /** Default configuration applied to all chains unless overridden */\n default?: SmartTransactionsNetworkConfig;\n} & {\n /**\n * Chain-specific configuration overrides, keyed by chain ID.\n * Supports both hex (e.g., \"0x1\") and CAIP-2 format (e.g., \"eip155:1\", \"solana:...\")\n */\n [chainId: Hex | CaipChainId]: SmartTransactionsNetworkConfig | undefined;\n};\n"]}
package/dist/types.d.cts CHANGED
@@ -8,6 +8,7 @@ export declare type SentinelMeta = {
8
8
  kind?: Kind;
9
9
  client?: string;
10
10
  wallet?: string;
11
+ origin?: string;
11
12
  };
12
13
  export declare enum Feature {
13
14
  Swap = "Swap",
@@ -64,6 +65,25 @@ export declare enum ClientId {
64
65
  Mobile = "mobile",
65
66
  Extension = "extension"
66
67
  }
68
+ export declare enum OriginalTransactionStatus {
69
+ PENDING = "PENDING",
70
+ PENDING_CANCELLED = "PENDING_CANCELLED",
71
+ VALIDATED = "VALIDATED",
72
+ REVERTED = "REVERTED",
73
+ NONCE_TOO_LOW = "NONCE_TOO_LOW",
74
+ CANCELLED = "CANCELLED",
75
+ FAILED = "FAILED",
76
+ FAILED_WOULD_REVERT = "FAILED_WOULD_REVERT",
77
+ FAILED_INSUFFICIENT_FUNDS = "FAILED_INSUFFICIENT_FUNDS",
78
+ FAILED_UNKNOWN = "FAILED_UNKNOWN",
79
+ FAILED_TIMEOUT = "FAILED_TIMEOUT",
80
+ FAILED_GAS_TOO_LOW = "FAILED_GAS_TOO_LOW",
81
+ FAILED_NONCE_TOO_HIGH = "FAILED_NONCE_TOO_HIGH",
82
+ LEAKED_VALIDATED = "LEAKED_VALIDATED",
83
+ LEAKED_REVERTED = "LEAKED_REVERTED",
84
+ CANCELLED_LEAKED_VALIDATED = "CANCELLED_LEAKED_VALIDATED",
85
+ CANCELLED_LEAKED_REVERTED = "CANCELLED_LEAKED_REVERTED"
86
+ }
67
87
  export declare const cancellationReasonToStatusMap: {
68
88
  would_revert: SmartTransactionStatuses;
69
89
  too_cheap: SmartTransactionStatuses;
@@ -75,6 +95,7 @@ export declare type SmartTransactionsStatus = {
75
95
  error?: string;
76
96
  cancellationFeeWei: number;
77
97
  cancellationReason?: SmartTransactionCancellationReason;
98
+ originalTransactionStatus?: OriginalTransactionStatus;
78
99
  deadlineRatio: number;
79
100
  minedHash: string;
80
101
  minedTx: SmartTransactionMinedTx;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.d.mts CHANGED
@@ -8,6 +8,7 @@ export declare type SentinelMeta = {
8
8
  kind?: Kind;
9
9
  client?: string;
10
10
  wallet?: string;
11
+ origin?: string;
11
12
  };
12
13
  export declare enum Feature {
13
14
  Swap = "Swap",
@@ -64,6 +65,25 @@ export declare enum ClientId {
64
65
  Mobile = "mobile",
65
66
  Extension = "extension"
66
67
  }
68
+ export declare enum OriginalTransactionStatus {
69
+ PENDING = "PENDING",
70
+ PENDING_CANCELLED = "PENDING_CANCELLED",
71
+ VALIDATED = "VALIDATED",
72
+ REVERTED = "REVERTED",
73
+ NONCE_TOO_LOW = "NONCE_TOO_LOW",
74
+ CANCELLED = "CANCELLED",
75
+ FAILED = "FAILED",
76
+ FAILED_WOULD_REVERT = "FAILED_WOULD_REVERT",
77
+ FAILED_INSUFFICIENT_FUNDS = "FAILED_INSUFFICIENT_FUNDS",
78
+ FAILED_UNKNOWN = "FAILED_UNKNOWN",
79
+ FAILED_TIMEOUT = "FAILED_TIMEOUT",
80
+ FAILED_GAS_TOO_LOW = "FAILED_GAS_TOO_LOW",
81
+ FAILED_NONCE_TOO_HIGH = "FAILED_NONCE_TOO_HIGH",
82
+ LEAKED_VALIDATED = "LEAKED_VALIDATED",
83
+ LEAKED_REVERTED = "LEAKED_REVERTED",
84
+ CANCELLED_LEAKED_VALIDATED = "CANCELLED_LEAKED_VALIDATED",
85
+ CANCELLED_LEAKED_REVERTED = "CANCELLED_LEAKED_REVERTED"
86
+ }
67
87
  export declare const cancellationReasonToStatusMap: {
68
88
  would_revert: SmartTransactionStatuses;
69
89
  too_cheap: SmartTransactionStatuses;
@@ -75,6 +95,7 @@ export declare type SmartTransactionsStatus = {
75
95
  error?: string;
76
96
  cancellationFeeWei: number;
77
97
  cancellationReason?: SmartTransactionCancellationReason;
98
+ originalTransactionStatus?: OriginalTransactionStatus;
78
99
  deadlineRatio: number;
79
100
  minedHash: string;
80
101
  minedTx: SmartTransactionMinedTx;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.mjs CHANGED
@@ -61,6 +61,26 @@ export var ClientId;
61
61
  ClientId["Mobile"] = "mobile";
62
62
  ClientId["Extension"] = "extension";
63
63
  })(ClientId = ClientId || (ClientId = {}));
64
+ export var OriginalTransactionStatus;
65
+ (function (OriginalTransactionStatus) {
66
+ OriginalTransactionStatus["PENDING"] = "PENDING";
67
+ OriginalTransactionStatus["PENDING_CANCELLED"] = "PENDING_CANCELLED";
68
+ OriginalTransactionStatus["VALIDATED"] = "VALIDATED";
69
+ OriginalTransactionStatus["REVERTED"] = "REVERTED";
70
+ OriginalTransactionStatus["NONCE_TOO_LOW"] = "NONCE_TOO_LOW";
71
+ OriginalTransactionStatus["CANCELLED"] = "CANCELLED";
72
+ OriginalTransactionStatus["FAILED"] = "FAILED";
73
+ OriginalTransactionStatus["FAILED_WOULD_REVERT"] = "FAILED_WOULD_REVERT";
74
+ OriginalTransactionStatus["FAILED_INSUFFICIENT_FUNDS"] = "FAILED_INSUFFICIENT_FUNDS";
75
+ OriginalTransactionStatus["FAILED_UNKNOWN"] = "FAILED_UNKNOWN";
76
+ OriginalTransactionStatus["FAILED_TIMEOUT"] = "FAILED_TIMEOUT";
77
+ OriginalTransactionStatus["FAILED_GAS_TOO_LOW"] = "FAILED_GAS_TOO_LOW";
78
+ OriginalTransactionStatus["FAILED_NONCE_TOO_HIGH"] = "FAILED_NONCE_TOO_HIGH";
79
+ OriginalTransactionStatus["LEAKED_VALIDATED"] = "LEAKED_VALIDATED";
80
+ OriginalTransactionStatus["LEAKED_REVERTED"] = "LEAKED_REVERTED";
81
+ OriginalTransactionStatus["CANCELLED_LEAKED_VALIDATED"] = "CANCELLED_LEAKED_VALIDATED";
82
+ OriginalTransactionStatus["CANCELLED_LEAKED_REVERTED"] = "CANCELLED_LEAKED_REVERTED";
83
+ })(OriginalTransactionStatus = OriginalTransactionStatus || (OriginalTransactionStatus = {}));
64
84
  export const cancellationReasonToStatusMap = {
65
85
  [SmartTransactionCancellationReason.WOULD_REVERT]: SmartTransactionStatuses.CANCELLED,
66
86
  [SmartTransactionCancellationReason.TOO_CHEAP]: SmartTransactionStatuses.CANCELLED,
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAcA,8GAA8G;AAC9G,MAAM,CAAN,IAAY,OAUX;AAVD,WAAY,OAAO;IACjB,wBAAa,CAAA;IACb,8BAAmB,CAAA;IACnB,wBAAa,CAAA;IACb,oCAAyB,CAAA;IACzB,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,4BAAiB,CAAA;IACjB,8CAAmC,CAAA;AACrC,CAAC,EAVW,OAAO,GAAP,OAAO,KAAP,OAAO,QAUlB;AAED,MAAM,CAAN,IAAY,IAKX;AALD,WAAY,IAAI;IACd,2BAAmB,CAAA;IACnB,mBAAW,CAAA;IACX,+CAAuC,CAAA;IACvC,yCAAiC,CAAA;AACnC,CAAC,EALW,IAAI,GAAJ,IAAI,KAAJ,IAAI,QAKf;AAED,UAAU;AACV,MAAM,CAAN,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,6CAAU,CAAA;IACV,qDAAc,CAAA;IACd,mEAAqB,CAAA;IACrB,yCAAQ,CAAA;IACR,qDAAc,CAAA;IACd,6CAAU,CAAA;AACZ,CAAC,EAPW,OAAO,GAAP,OAAO,KAAP,OAAO,QAOlB;AAED,wBAAwB;AACxB,MAAM,CAAN,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,kDAAuB,CAAA;IACvB,8CAAmB,CAAA;IACnB,kDAAuB,CAAA;IACvB,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;AACrB,CAAC,EANW,uBAAuB,GAAvB,uBAAuB,KAAvB,uBAAuB,QAMlC;AAED,MAAM,CAAN,IAAY,kCAOX;AAPD,WAAY,kCAAkC;IAC5C,mEAA6B,CAAA;IAC7B,6DAAuB,CAAA;IACvB,yEAAmC,CAAA;IACnC,qEAA+B,CAAA;IAC/B,uEAAiC,CAAA;IACjC,qEAA+B,CAAA;AACjC,CAAC,EAPW,kCAAkC,GAAlC,kCAAkC,KAAlC,kCAAkC,QAO7C;AAED,MAAM,CAAN,IAAY,wBAQX;AARD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,+CAAmB,CAAA;IACnB,iDAAqB,CAAA;IACrB,+CAAmB,CAAA;IACnB,mDAAuB,CAAA;IACvB,iFAAqD,CAAA;IACrD,iDAAqB,CAAA;AACvB,CAAC,EARW,wBAAwB,GAAxB,wBAAwB,KAAxB,wBAAwB,QAQnC;AAED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,GAAR,QAAQ,KAAR,QAAQ,QAGnB;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,CAAC,kCAAkC,CAAC,YAAY,CAAC,EAC/C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,SAAS,CAAC,EAC5C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,eAAe,CAAC,EAClD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,aAAa,CAAC,EAChD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,cAAc,CAAC,EACjD,wBAAwB,CAAC,wBAAwB;CACpD,CAAC","sourcesContent":["import type { NetworkClientId } from '@metamask/network-controller';\nimport type { TransactionType } from '@metamask/transaction-controller';\nimport type { CaipChainId, Hex } from '@metamask/utils';\n\nimport type { SmartTransactionsNetworkConfig } from './featureFlags';\n\nexport type SentinelMeta = {\n txType?: TransactionType;\n feature?: Feature;\n kind?: Kind;\n client?: string;\n wallet?: string;\n};\n\n// This list does not belong here, but as these are reported to tx-sentinel, it is ok to have it here for now.\nexport enum Feature {\n Swap = 'Swap',\n Staking = 'Staking',\n Ramp = 'Ramp',\n Prediction = 'Prediction',\n Perp = 'Perp',\n Earn = 'Earn',\n Card = 'Card',\n Bridge = 'Bridge',\n dAppTransaction = 'dAppTransaction',\n}\n\nexport enum Kind {\n Regular = 'Regular',\n STX = 'STX',\n GaslessSendBundle = 'GaslessSendBundle',\n GaslessEIP7702 = 'GaslessEIP7702',\n}\n\n/** API */\nexport enum APIType {\n 'GET_FEES',\n 'ESTIMATE_GAS',\n 'SUBMIT_TRANSACTIONS',\n 'CANCEL',\n 'BATCH_STATUS',\n 'LIVENESS',\n}\n\n/** SmartTransactions */\nexport enum SmartTransactionMinedTx {\n NOT_MINED = 'not_mined',\n SUCCESS = 'success',\n CANCELLED = 'cancelled',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n}\n\nexport enum SmartTransactionCancellationReason {\n WOULD_REVERT = 'would_revert',\n TOO_CHEAP = 'too_cheap',\n DEADLINE_MISSED = 'deadline_missed',\n INVALID_NONCE = 'invalid_nonce',\n USER_CANCELLED = 'user_cancelled',\n NOT_CANCELLED = 'not_cancelled',\n}\n\nexport enum SmartTransactionStatuses {\n PENDING = 'pending',\n SUCCESS = 'success',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n CANCELLED = 'cancelled',\n CANCELLED_USER_CANCELLED = 'cancelled_user_cancelled',\n RESOLVED = 'resolved',\n}\n\nexport enum ClientId {\n Mobile = 'mobile',\n Extension = 'extension',\n}\n\nexport const cancellationReasonToStatusMap = {\n [SmartTransactionCancellationReason.WOULD_REVERT]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.TOO_CHEAP]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.DEADLINE_MISSED]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.INVALID_NONCE]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.USER_CANCELLED]:\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n};\n\nexport type SmartTransactionsStatus = {\n error?: string;\n cancellationFeeWei: number;\n cancellationReason?: SmartTransactionCancellationReason;\n deadlineRatio: number;\n minedHash: string;\n minedTx: SmartTransactionMinedTx;\n isSettled: boolean;\n duplicated?: boolean;\n timedOut?: boolean;\n proxied?: boolean;\n};\n\nexport type SmartTransaction = {\n uuid: string;\n txHash?: string;\n txHashes?: string[];\n chainId?: string;\n destinationTokenAddress?: string;\n destinationTokenDecimals?: string;\n destinationTokenSymbol?: string;\n history?: any;\n nonceDetails?: any;\n origin?: string;\n preTxBalance?: string;\n status?: string;\n statusMetadata?: SmartTransactionsStatus;\n sourceTokenSymbol?: string;\n swapMetaData?: any;\n swapTokenValue?: string;\n time?: number; // @deprecated We should use creationTime instead.\n creationTime?: number;\n txParams?: any;\n type?: string;\n confirmed?: boolean;\n cancellable?: boolean;\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n transactionId?: string; // It's an ID for a regular transaction from the TransactionController.\n networkClientId?: NetworkClientId;\n};\n\nexport type Fee = {\n maxFeePerGas: number;\n maxPriorityFeePerGas: number;\n};\n\nexport type IndividualTxFees = {\n fees: Fee[];\n cancelFees: Fee[];\n feeEstimate: number;\n gasLimit: number;\n gasUsed: number;\n};\n\nexport type Fees = {\n approvalTxFees: IndividualTxFees | null;\n tradeTxFees: IndividualTxFees | null;\n};\n\n// TODO\nexport type UnsignedTransaction = any;\n\n// TODO\nexport type SignedTransaction = any;\n\nexport type SignedTransactionWithMetadata = {\n tx: string;\n metadata?: SentinelMeta;\n};\n\n// TODO\nexport type SignedCanceledTransaction = any;\n\nexport type MetaMetricsProps = {\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n};\n\nexport type FeatureFlags = {\n smartTransactions?: {\n mobileReturnTxHashAsap?: boolean;\n extensionReturnTxHashAsap?: boolean;\n };\n};\n\n/**\n * Configuration for smart transactions on a specific network.\n * These flags control feature availability and behavior per chain.\n *\n * This type is inferred from the SmartTransactionsNetworkConfigSchema.\n * To add a new field, update the schema in `src/featureFlags/validators.ts`.\n */\nexport type { SmartTransactionsNetworkConfig };\n\n/**\n * Feature flags configuration for smart transactions across all networks.\n * Contains a default configuration and optional chain-specific overrides.\n */\nexport type SmartTransactionsFeatureFlagsConfig = {\n /** Default configuration applied to all chains unless overridden */\n default?: SmartTransactionsNetworkConfig;\n} & {\n /**\n * Chain-specific configuration overrides, keyed by chain ID.\n * Supports both hex (e.g., \"0x1\") and CAIP-2 format (e.g., \"eip155:1\", \"solana:...\")\n */\n [chainId: Hex | CaipChainId]: SmartTransactionsNetworkConfig | undefined;\n};\n"]}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NetworkClientId } from '@metamask/network-controller';\nimport type { TransactionType } from '@metamask/transaction-controller';\nimport type { CaipChainId, Hex } from '@metamask/utils';\n\nimport type { SmartTransactionsNetworkConfig } from './featureFlags';\n\nexport type SentinelMeta = {\n txType?: TransactionType;\n feature?: Feature;\n kind?: Kind;\n client?: string;\n wallet?: string;\n origin?: string;\n};\n\n// This list does not belong here, but as these are reported to tx-sentinel, it is ok to have it here for now.\nexport enum Feature {\n Swap = 'Swap',\n Staking = 'Staking',\n Ramp = 'Ramp',\n Prediction = 'Prediction',\n Perp = 'Perp',\n Earn = 'Earn',\n Card = 'Card',\n Bridge = 'Bridge',\n dAppTransaction = 'dAppTransaction',\n}\n\nexport enum Kind {\n Regular = 'Regular',\n STX = 'STX',\n GaslessSendBundle = 'GaslessSendBundle',\n GaslessEIP7702 = 'GaslessEIP7702',\n}\n\n/** API */\nexport enum APIType {\n 'GET_FEES',\n 'ESTIMATE_GAS',\n 'SUBMIT_TRANSACTIONS',\n 'CANCEL',\n 'BATCH_STATUS',\n 'LIVENESS',\n}\n\n/** SmartTransactions */\nexport enum SmartTransactionMinedTx {\n NOT_MINED = 'not_mined',\n SUCCESS = 'success',\n CANCELLED = 'cancelled',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n}\n\nexport enum SmartTransactionCancellationReason {\n WOULD_REVERT = 'would_revert',\n TOO_CHEAP = 'too_cheap',\n DEADLINE_MISSED = 'deadline_missed',\n INVALID_NONCE = 'invalid_nonce',\n USER_CANCELLED = 'user_cancelled',\n NOT_CANCELLED = 'not_cancelled',\n}\n\nexport enum SmartTransactionStatuses {\n PENDING = 'pending',\n SUCCESS = 'success',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n CANCELLED = 'cancelled',\n CANCELLED_USER_CANCELLED = 'cancelled_user_cancelled',\n RESOLVED = 'resolved',\n}\n\nexport enum ClientId {\n Mobile = 'mobile',\n Extension = 'extension',\n}\n\nexport enum OriginalTransactionStatus {\n PENDING = 'PENDING',\n PENDING_CANCELLED = 'PENDING_CANCELLED',\n\n VALIDATED = 'VALIDATED',\n REVERTED = 'REVERTED',\n NONCE_TOO_LOW = 'NONCE_TOO_LOW',\n CANCELLED = 'CANCELLED',\n\n FAILED = 'FAILED',\n FAILED_WOULD_REVERT = 'FAILED_WOULD_REVERT',\n FAILED_INSUFFICIENT_FUNDS = 'FAILED_INSUFFICIENT_FUNDS',\n FAILED_UNKNOWN = 'FAILED_UNKNOWN',\n FAILED_TIMEOUT = 'FAILED_TIMEOUT',\n FAILED_GAS_TOO_LOW = 'FAILED_GAS_TOO_LOW',\n FAILED_NONCE_TOO_HIGH = 'FAILED_NONCE_TOO_HIGH',\n\n LEAKED_VALIDATED = 'LEAKED_VALIDATED',\n LEAKED_REVERTED = 'LEAKED_REVERTED',\n CANCELLED_LEAKED_VALIDATED = 'CANCELLED_LEAKED_VALIDATED',\n CANCELLED_LEAKED_REVERTED = 'CANCELLED_LEAKED_REVERTED',\n}\n\nexport const cancellationReasonToStatusMap = {\n [SmartTransactionCancellationReason.WOULD_REVERT]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.TOO_CHEAP]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.DEADLINE_MISSED]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.INVALID_NONCE]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.USER_CANCELLED]:\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n};\n\nexport type SmartTransactionsStatus = {\n error?: string;\n cancellationFeeWei: number;\n cancellationReason?: SmartTransactionCancellationReason;\n originalTransactionStatus?: OriginalTransactionStatus;\n deadlineRatio: number;\n minedHash: string;\n minedTx: SmartTransactionMinedTx;\n isSettled: boolean;\n duplicated?: boolean;\n timedOut?: boolean;\n proxied?: boolean;\n};\n\nexport type SmartTransaction = {\n uuid: string;\n txHash?: string;\n txHashes?: string[];\n chainId?: string;\n destinationTokenAddress?: string;\n destinationTokenDecimals?: string;\n destinationTokenSymbol?: string;\n history?: any;\n nonceDetails?: any;\n origin?: string;\n preTxBalance?: string;\n status?: string;\n statusMetadata?: SmartTransactionsStatus;\n sourceTokenSymbol?: string;\n swapMetaData?: any;\n swapTokenValue?: string;\n time?: number; // @deprecated We should use creationTime instead.\n creationTime?: number;\n txParams?: any;\n type?: string;\n confirmed?: boolean;\n cancellable?: boolean;\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n transactionId?: string; // It's an ID for a regular transaction from the TransactionController.\n networkClientId?: NetworkClientId;\n};\n\nexport type Fee = {\n maxFeePerGas: number;\n maxPriorityFeePerGas: number;\n};\n\nexport type IndividualTxFees = {\n fees: Fee[];\n cancelFees: Fee[];\n feeEstimate: number;\n gasLimit: number;\n gasUsed: number;\n};\n\nexport type Fees = {\n approvalTxFees: IndividualTxFees | null;\n tradeTxFees: IndividualTxFees | null;\n};\n\n// TODO\nexport type UnsignedTransaction = any;\n\n// TODO\nexport type SignedTransaction = any;\n\nexport type SignedTransactionWithMetadata = {\n tx: string;\n metadata?: SentinelMeta;\n};\n\n// TODO\nexport type SignedCanceledTransaction = any;\n\nexport type MetaMetricsProps = {\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n};\n\nexport type FeatureFlags = {\n smartTransactions?: {\n mobileReturnTxHashAsap?: boolean;\n extensionReturnTxHashAsap?: boolean;\n };\n};\n\n/**\n * Configuration for smart transactions on a specific network.\n * These flags control feature availability and behavior per chain.\n *\n * This type is inferred from the SmartTransactionsNetworkConfigSchema.\n * To add a new field, update the schema in `src/featureFlags/validators.ts`.\n */\nexport type { SmartTransactionsNetworkConfig };\n\n/**\n * Feature flags configuration for smart transactions across all networks.\n * Contains a default configuration and optional chain-specific overrides.\n */\nexport type SmartTransactionsFeatureFlagsConfig = {\n /** Default configuration applied to all chains unless overridden */\n default?: SmartTransactionsNetworkConfig;\n} & {\n /**\n * Chain-specific configuration overrides, keyed by chain ID.\n * Supports both hex (e.g., \"0x1\") and CAIP-2 format (e.g., \"eip155:1\", \"solana:...\")\n */\n [chainId: Hex | CaipChainId]: SmartTransactionsNetworkConfig | undefined;\n};\n"]}
package/dist/utils.cjs CHANGED
@@ -177,6 +177,7 @@ const getSmartTransactionMetricsProperties = (smartTransaction) => {
177
177
  stx_duplicated: smartTransactionStatusMetadata === null || smartTransactionStatusMetadata === void 0 ? void 0 : smartTransactionStatusMetadata.duplicated,
178
178
  stx_timed_out: smartTransactionStatusMetadata === null || smartTransactionStatusMetadata === void 0 ? void 0 : smartTransactionStatusMetadata.timedOut,
179
179
  stx_proxied: smartTransactionStatusMetadata === null || smartTransactionStatusMetadata === void 0 ? void 0 : smartTransactionStatusMetadata.proxied,
180
+ stx_original_transaction_status: smartTransactionStatusMetadata === null || smartTransactionStatusMetadata === void 0 ? void 0 : smartTransactionStatusMetadata.originalTransactionStatus,
180
181
  };
181
182
  };
182
183
  exports.getSmartTransactionMetricsProperties = getSmartTransactionMetricsProperties;
@@ -216,18 +217,22 @@ const shouldMarkRegularTransactionsAsFailed = ({ smartTransaction, clientId, fea
216
217
  };
217
218
  exports.shouldMarkRegularTransactionsAsFailed = shouldMarkRegularTransactionsAsFailed;
218
219
  const markRegularTransactionsAsFailed = ({ smartTransaction, getRegularTransactions, updateTransaction, }) => {
219
- const { transactionId, status, txHashes } = smartTransaction;
220
+ const { transactionId, status, statusMetadata, txHashes } = smartTransaction;
221
+ const originalTransactionStatus = statusMetadata === null || statusMetadata === void 0 ? void 0 : statusMetadata.originalTransactionStatus;
220
222
  const transactionsToFail = getRegularTransactions().filter((tx) => (tx.hash && (txHashes === null || txHashes === void 0 ? void 0 : txHashes.includes(tx.hash))) || tx.id === transactionId);
221
223
  if (!transactionsToFail.length) {
222
224
  throw new Error('Cannot find regular transaction to mark it as failed');
223
225
  }
226
+ const errorMessage = originalTransactionStatus
227
+ ? `Smart transaction failed with status: ${status}, originalTransactionStatus: ${originalTransactionStatus}`
228
+ : `Smart transaction failed with status: ${status}`;
224
229
  for (const tx of transactionsToFail) {
225
230
  if (tx.status === transaction_controller_1.TransactionStatus.failed) {
226
231
  continue; // Already marked as failed.
227
232
  }
228
233
  const updatedTransaction = Object.assign(Object.assign({}, tx), { status: transaction_controller_1.TransactionStatus.failed, error: {
229
234
  name: 'SmartTransactionFailed',
230
- message: `Smart transaction failed with status: ${status}`,
235
+ message: errorMessage,
231
236
  } });
232
237
  updateTransaction(updatedTransaction, `Smart transaction status: ${status}`);
233
238
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { arrayify, hexlify } from '@ethersproject/bytes';\nimport { keccak256 } from '@ethersproject/keccak256';\nimport { parse } from '@ethersproject/transactions';\nimport type {\n TransactionControllerGetTransactionsAction,\n TransactionControllerUpdateTransactionAction,\n TransactionMeta,\n} from '@metamask/transaction-controller';\nimport { TransactionStatus } from '@metamask/transaction-controller';\nimport { BigNumber } from 'bignumber.js';\nimport _ from 'lodash';\n\n// Ignoring TypeScript errors here because this import is disallowed for production builds, because\n// the `package.json` file is above the root directory.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport packageJson from '../package.json';\nimport { API_BASE_URL, SENTINEL_API_BASE_URL_MAP } from './constants';\nimport type {\n SmartTransaction,\n SmartTransactionsStatus,\n SmartTransactionsNetworkConfig,\n} from './types';\nimport {\n APIType,\n SmartTransactionStatuses,\n SmartTransactionCancellationReason,\n SmartTransactionMinedTx,\n cancellationReasonToStatusMap,\n ClientId,\n} from './types';\n\nexport function isSmartTransactionPending(smartTransaction: SmartTransaction) {\n return smartTransaction.status === SmartTransactionStatuses.PENDING;\n}\n\nexport const isSmartTransactionStatusResolved = (\n stxStatus: SmartTransactionsStatus | string,\n) => stxStatus === 'uuid_not_found';\n\n// TODO use actual url once API is defined\nexport function getAPIRequestURL(apiType: APIType, chainId: string): string {\n const chainIdDec = parseInt(chainId, 16);\n switch (apiType) {\n case APIType.GET_FEES: {\n return `${API_BASE_URL}/networks/${chainIdDec}/getFees`;\n }\n\n case APIType.ESTIMATE_GAS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/estimateGas`;\n }\n\n case APIType.SUBMIT_TRANSACTIONS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/submitTransactions?stxControllerVersion=${packageJson.version}`;\n }\n\n case APIType.CANCEL: {\n return `${API_BASE_URL}/networks/${chainIdDec}/cancel`;\n }\n\n case APIType.BATCH_STATUS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/batchStatus`;\n }\n\n case APIType.LIVENESS: {\n return `${SENTINEL_API_BASE_URL_MAP[chainIdDec]}/network`;\n }\n\n default: {\n throw new Error(`Invalid APIType`); // It can never get here thanks to TypeScript.\n }\n }\n}\n\nexport const calculateStatus = (stxStatus: SmartTransactionsStatus) => {\n if (isSmartTransactionStatusResolved(stxStatus)) {\n return SmartTransactionStatuses.RESOLVED;\n }\n const cancellations = [\n SmartTransactionCancellationReason.WOULD_REVERT,\n SmartTransactionCancellationReason.TOO_CHEAP,\n SmartTransactionCancellationReason.DEADLINE_MISSED,\n SmartTransactionCancellationReason.INVALID_NONCE,\n SmartTransactionCancellationReason.USER_CANCELLED,\n ];\n if (stxStatus?.minedTx === SmartTransactionMinedTx.NOT_MINED) {\n if (\n stxStatus.cancellationReason ===\n SmartTransactionCancellationReason.NOT_CANCELLED\n ) {\n return SmartTransactionStatuses.PENDING;\n }\n\n const isCancellation =\n cancellations.findIndex(\n (cancellation) => cancellation === stxStatus.cancellationReason,\n ) > -1;\n if (stxStatus.cancellationReason && isCancellation) {\n if (!stxStatus.isSettled) {\n return SmartTransactionStatuses.PENDING;\n }\n return cancellationReasonToStatusMap[stxStatus.cancellationReason];\n }\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.SUCCESS) {\n return SmartTransactionStatuses.SUCCESS;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.CANCELLED) {\n return SmartTransactionStatuses.CANCELLED;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.REVERTED) {\n return SmartTransactionStatuses.REVERTED;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.UNKNOWN) {\n return SmartTransactionStatuses.UNKNOWN;\n }\n return SmartTransactionStatuses.UNKNOWN;\n};\n\n/**\n * Returns processing time for an STX in seconds.\n * @param smartTransactionSubmittedtime\n * @returns Processing time in seconds.\n */\nexport const getStxProcessingTime = (\n smartTransactionSubmittedtime: number | undefined,\n): number | undefined => {\n if (!smartTransactionSubmittedtime) {\n return undefined;\n }\n return Math.round((Date.now() - smartTransactionSubmittedtime) / 1000);\n};\n\nexport const mapKeysToCamel = (\n obj: Record<string, any>,\n): Record<string, any> => {\n if (!_.isObject(obj)) {\n return obj;\n }\n const mappedValues = _.mapValues(obj, (val: Record<string, any>) => {\n if (_.isArray(val)) {\n return val.map(mapKeysToCamel);\n } else if (_.isObject(val)) {\n return mapKeysToCamel(val);\n }\n return val;\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return _.mapKeys(mappedValues, (value, key) => _.camelCase(key));\n};\n\nexport async function handleFetch(request: string, options?: RequestInit) {\n const response = await fetch(request, options);\n const json = await response.json();\n if (!response.ok) {\n console.log(`response`, response);\n throw new Error(\n `Fetch error:${JSON.stringify({\n status: response.status,\n ...mapKeysToCamel(json),\n })}`,\n );\n }\n return json;\n}\n\nexport const isSmartTransactionCancellable = (\n stxStatus: SmartTransactionsStatus,\n): boolean => {\n return (\n stxStatus.minedTx === SmartTransactionMinedTx.NOT_MINED &&\n (!stxStatus.cancellationReason ||\n stxStatus.cancellationReason ===\n SmartTransactionCancellationReason.NOT_CANCELLED)\n );\n};\n\nexport const incrementNonceInHex = (nonceInHex: string): string => {\n const nonceInDec = new BigNumber(nonceInHex, 16).toString(10);\n return hexlify(Number(nonceInDec) + 1);\n};\n\nconst isType4Transaction = (signedTxHex: string) => {\n return typeof signedTxHex === 'string' && signedTxHex.startsWith('0x04');\n};\n\nexport const getTxHash = (signedTxHex: any) => {\n if (!signedTxHex) {\n return '';\n }\n try {\n const parsed = parse(signedTxHex);\n return parsed?.hash ?? '';\n } catch (error) {\n if (isType4Transaction(signedTxHex)) {\n return hexlify(keccak256(arrayify(signedTxHex)));\n }\n throw error;\n }\n};\n\nexport const getSmartTransactionMetricsProperties = (\n smartTransaction: SmartTransaction,\n) => {\n if (!smartTransaction) {\n return {};\n }\n const smartTransactionStatusMetadata = smartTransaction.statusMetadata;\n return {\n stx_status: smartTransaction.status,\n type: smartTransaction.type,\n processing_time: getStxProcessingTime(smartTransaction.time),\n is_smart_transaction: true,\n stx_enabled: true,\n current_stx_enabled: true,\n stx_user_opt_in: true,\n stx_duplicated: smartTransactionStatusMetadata?.duplicated,\n stx_timed_out: smartTransactionStatusMetadata?.timedOut,\n stx_proxied: smartTransactionStatusMetadata?.proxied,\n };\n};\n\nexport const getSmartTransactionMetricsSensitiveProperties = (\n smartTransaction: SmartTransaction,\n) => {\n if (!smartTransaction) {\n return {};\n }\n return {\n token_from_symbol: smartTransaction.sourceTokenSymbol,\n token_to_symbol: smartTransaction.destinationTokenSymbol,\n account_hardware_type: smartTransaction.accountHardwareType,\n account_type: smartTransaction.accountType,\n device_model: smartTransaction.deviceModel,\n };\n};\n\nexport const getReturnTxHashAsap = (\n clientId: ClientId,\n featureFlags: SmartTransactionsNetworkConfig,\n) => {\n return clientId === ClientId.Extension\n ? featureFlags.extensionReturnTxHashAsap\n : featureFlags.mobileReturnTxHashAsap;\n};\n\nexport const shouldMarkRegularTransactionsAsFailed = ({\n smartTransaction,\n clientId,\n featureFlags,\n}: {\n smartTransaction: SmartTransaction;\n clientId: ClientId;\n featureFlags: SmartTransactionsNetworkConfig;\n}): boolean => {\n const { status, transactionId } = smartTransaction;\n const failureStatuses: SmartTransactionStatuses[] = [\n SmartTransactionStatuses.CANCELLED,\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n SmartTransactionStatuses.UNKNOWN,\n SmartTransactionStatuses.RESOLVED,\n ];\n if (\n !status ||\n !failureStatuses.includes(status as SmartTransactionStatuses)\n ) {\n return false;\n }\n const returnTxHashAsapEnabled = getReturnTxHashAsap(clientId, featureFlags);\n return Boolean(returnTxHashAsapEnabled && transactionId);\n};\n\nexport const markRegularTransactionsAsFailed = ({\n smartTransaction,\n getRegularTransactions,\n updateTransaction,\n}: {\n smartTransaction: SmartTransaction;\n getRegularTransactions: TransactionControllerGetTransactionsAction['handler'];\n updateTransaction: TransactionControllerUpdateTransactionAction['handler'];\n}) => {\n const { transactionId, status, txHashes } = smartTransaction;\n\n const transactionsToFail = getRegularTransactions().filter(\n (tx) => (tx.hash && txHashes?.includes(tx.hash)) || tx.id === transactionId,\n );\n\n if (!transactionsToFail.length) {\n throw new Error('Cannot find regular transaction to mark it as failed');\n }\n\n for (const tx of transactionsToFail) {\n if (tx.status === TransactionStatus.failed) {\n continue; // Already marked as failed.\n }\n const updatedTransaction: TransactionMeta = {\n ...tx,\n status: TransactionStatus.failed,\n error: {\n name: 'SmartTransactionFailed',\n message: `Smart transaction failed with status: ${status}`,\n },\n };\n\n updateTransaction(\n updatedTransaction,\n `Smart transaction status: ${status}`,\n );\n }\n};\n"]}
1
+ {"version":3,"file":"utils.cjs","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { arrayify, hexlify } from '@ethersproject/bytes';\nimport { keccak256 } from '@ethersproject/keccak256';\nimport { parse } from '@ethersproject/transactions';\nimport type {\n TransactionControllerGetTransactionsAction,\n TransactionControllerUpdateTransactionAction,\n TransactionMeta,\n} from '@metamask/transaction-controller';\nimport { TransactionStatus } from '@metamask/transaction-controller';\nimport { BigNumber } from 'bignumber.js';\nimport _ from 'lodash';\n\n// Ignoring TypeScript errors here because this import is disallowed for production builds, because\n// the `package.json` file is above the root directory.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport packageJson from '../package.json';\nimport { API_BASE_URL, SENTINEL_API_BASE_URL_MAP } from './constants';\nimport type {\n SmartTransaction,\n SmartTransactionsStatus,\n SmartTransactionsNetworkConfig,\n} from './types';\nimport {\n APIType,\n SmartTransactionStatuses,\n SmartTransactionCancellationReason,\n SmartTransactionMinedTx,\n cancellationReasonToStatusMap,\n ClientId,\n} from './types';\n\nexport function isSmartTransactionPending(smartTransaction: SmartTransaction) {\n return smartTransaction.status === SmartTransactionStatuses.PENDING;\n}\n\nexport const isSmartTransactionStatusResolved = (\n stxStatus: SmartTransactionsStatus | string,\n) => stxStatus === 'uuid_not_found';\n\n// TODO use actual url once API is defined\nexport function getAPIRequestURL(apiType: APIType, chainId: string): string {\n const chainIdDec = parseInt(chainId, 16);\n switch (apiType) {\n case APIType.GET_FEES: {\n return `${API_BASE_URL}/networks/${chainIdDec}/getFees`;\n }\n\n case APIType.ESTIMATE_GAS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/estimateGas`;\n }\n\n case APIType.SUBMIT_TRANSACTIONS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/submitTransactions?stxControllerVersion=${packageJson.version}`;\n }\n\n case APIType.CANCEL: {\n return `${API_BASE_URL}/networks/${chainIdDec}/cancel`;\n }\n\n case APIType.BATCH_STATUS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/batchStatus`;\n }\n\n case APIType.LIVENESS: {\n return `${SENTINEL_API_BASE_URL_MAP[chainIdDec]}/network`;\n }\n\n default: {\n throw new Error(`Invalid APIType`); // It can never get here thanks to TypeScript.\n }\n }\n}\n\nexport const calculateStatus = (stxStatus: SmartTransactionsStatus) => {\n if (isSmartTransactionStatusResolved(stxStatus)) {\n return SmartTransactionStatuses.RESOLVED;\n }\n const cancellations = [\n SmartTransactionCancellationReason.WOULD_REVERT,\n SmartTransactionCancellationReason.TOO_CHEAP,\n SmartTransactionCancellationReason.DEADLINE_MISSED,\n SmartTransactionCancellationReason.INVALID_NONCE,\n SmartTransactionCancellationReason.USER_CANCELLED,\n ];\n if (stxStatus?.minedTx === SmartTransactionMinedTx.NOT_MINED) {\n if (\n stxStatus.cancellationReason ===\n SmartTransactionCancellationReason.NOT_CANCELLED\n ) {\n return SmartTransactionStatuses.PENDING;\n }\n\n const isCancellation =\n cancellations.findIndex(\n (cancellation) => cancellation === stxStatus.cancellationReason,\n ) > -1;\n if (stxStatus.cancellationReason && isCancellation) {\n if (!stxStatus.isSettled) {\n return SmartTransactionStatuses.PENDING;\n }\n return cancellationReasonToStatusMap[stxStatus.cancellationReason];\n }\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.SUCCESS) {\n return SmartTransactionStatuses.SUCCESS;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.CANCELLED) {\n return SmartTransactionStatuses.CANCELLED;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.REVERTED) {\n return SmartTransactionStatuses.REVERTED;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.UNKNOWN) {\n return SmartTransactionStatuses.UNKNOWN;\n }\n return SmartTransactionStatuses.UNKNOWN;\n};\n\n/**\n * Returns processing time for an STX in seconds.\n * @param smartTransactionSubmittedtime\n * @returns Processing time in seconds.\n */\nexport const getStxProcessingTime = (\n smartTransactionSubmittedtime: number | undefined,\n): number | undefined => {\n if (!smartTransactionSubmittedtime) {\n return undefined;\n }\n return Math.round((Date.now() - smartTransactionSubmittedtime) / 1000);\n};\n\nexport const mapKeysToCamel = (\n obj: Record<string, any>,\n): Record<string, any> => {\n if (!_.isObject(obj)) {\n return obj;\n }\n const mappedValues = _.mapValues(obj, (val: Record<string, any>) => {\n if (_.isArray(val)) {\n return val.map(mapKeysToCamel);\n } else if (_.isObject(val)) {\n return mapKeysToCamel(val);\n }\n return val;\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return _.mapKeys(mappedValues, (value, key) => _.camelCase(key));\n};\n\nexport async function handleFetch(request: string, options?: RequestInit) {\n const response = await fetch(request, options);\n const json = await response.json();\n if (!response.ok) {\n console.log(`response`, response);\n throw new Error(\n `Fetch error:${JSON.stringify({\n status: response.status,\n ...mapKeysToCamel(json),\n })}`,\n );\n }\n return json;\n}\n\nexport const isSmartTransactionCancellable = (\n stxStatus: SmartTransactionsStatus,\n): boolean => {\n return (\n stxStatus.minedTx === SmartTransactionMinedTx.NOT_MINED &&\n (!stxStatus.cancellationReason ||\n stxStatus.cancellationReason ===\n SmartTransactionCancellationReason.NOT_CANCELLED)\n );\n};\n\nexport const incrementNonceInHex = (nonceInHex: string): string => {\n const nonceInDec = new BigNumber(nonceInHex, 16).toString(10);\n return hexlify(Number(nonceInDec) + 1);\n};\n\nconst isType4Transaction = (signedTxHex: string) => {\n return typeof signedTxHex === 'string' && signedTxHex.startsWith('0x04');\n};\n\nexport const getTxHash = (signedTxHex: any) => {\n if (!signedTxHex) {\n return '';\n }\n try {\n const parsed = parse(signedTxHex);\n return parsed?.hash ?? '';\n } catch (error) {\n if (isType4Transaction(signedTxHex)) {\n return hexlify(keccak256(arrayify(signedTxHex)));\n }\n throw error;\n }\n};\n\nexport const getSmartTransactionMetricsProperties = (\n smartTransaction: SmartTransaction,\n) => {\n if (!smartTransaction) {\n return {};\n }\n const smartTransactionStatusMetadata = smartTransaction.statusMetadata;\n return {\n stx_status: smartTransaction.status,\n type: smartTransaction.type,\n processing_time: getStxProcessingTime(smartTransaction.time),\n is_smart_transaction: true,\n stx_enabled: true,\n current_stx_enabled: true,\n stx_user_opt_in: true,\n stx_duplicated: smartTransactionStatusMetadata?.duplicated,\n stx_timed_out: smartTransactionStatusMetadata?.timedOut,\n stx_proxied: smartTransactionStatusMetadata?.proxied,\n stx_original_transaction_status:\n smartTransactionStatusMetadata?.originalTransactionStatus,\n };\n};\n\nexport const getSmartTransactionMetricsSensitiveProperties = (\n smartTransaction: SmartTransaction,\n) => {\n if (!smartTransaction) {\n return {};\n }\n return {\n token_from_symbol: smartTransaction.sourceTokenSymbol,\n token_to_symbol: smartTransaction.destinationTokenSymbol,\n account_hardware_type: smartTransaction.accountHardwareType,\n account_type: smartTransaction.accountType,\n device_model: smartTransaction.deviceModel,\n };\n};\n\nexport const getReturnTxHashAsap = (\n clientId: ClientId,\n featureFlags: SmartTransactionsNetworkConfig,\n) => {\n return clientId === ClientId.Extension\n ? featureFlags.extensionReturnTxHashAsap\n : featureFlags.mobileReturnTxHashAsap;\n};\n\nexport const shouldMarkRegularTransactionsAsFailed = ({\n smartTransaction,\n clientId,\n featureFlags,\n}: {\n smartTransaction: SmartTransaction;\n clientId: ClientId;\n featureFlags: SmartTransactionsNetworkConfig;\n}): boolean => {\n const { status, transactionId } = smartTransaction;\n const failureStatuses: SmartTransactionStatuses[] = [\n SmartTransactionStatuses.CANCELLED,\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n SmartTransactionStatuses.UNKNOWN,\n SmartTransactionStatuses.RESOLVED,\n ];\n if (\n !status ||\n !failureStatuses.includes(status as SmartTransactionStatuses)\n ) {\n return false;\n }\n const returnTxHashAsapEnabled = getReturnTxHashAsap(clientId, featureFlags);\n return Boolean(returnTxHashAsapEnabled && transactionId);\n};\n\nexport const markRegularTransactionsAsFailed = ({\n smartTransaction,\n getRegularTransactions,\n updateTransaction,\n}: {\n smartTransaction: SmartTransaction;\n getRegularTransactions: TransactionControllerGetTransactionsAction['handler'];\n updateTransaction: TransactionControllerUpdateTransactionAction['handler'];\n}) => {\n const { transactionId, status, statusMetadata, txHashes } = smartTransaction;\n const originalTransactionStatus = statusMetadata?.originalTransactionStatus;\n\n const transactionsToFail = getRegularTransactions().filter(\n (tx) => (tx.hash && txHashes?.includes(tx.hash)) || tx.id === transactionId,\n );\n\n if (!transactionsToFail.length) {\n throw new Error('Cannot find regular transaction to mark it as failed');\n }\n\n const errorMessage = originalTransactionStatus\n ? `Smart transaction failed with status: ${status}, originalTransactionStatus: ${originalTransactionStatus}`\n : `Smart transaction failed with status: ${status}`;\n\n for (const tx of transactionsToFail) {\n if (tx.status === TransactionStatus.failed) {\n continue; // Already marked as failed.\n }\n const updatedTransaction: TransactionMeta = {\n ...tx,\n status: TransactionStatus.failed,\n error: {\n name: 'SmartTransactionFailed',\n message: errorMessage,\n },\n };\n\n updateTransaction(\n updatedTransaction,\n `Smart transaction status: ${status}`,\n );\n }\n};\n"]}
package/dist/utils.d.cts CHANGED
@@ -27,6 +27,7 @@ export declare const getSmartTransactionMetricsProperties: (smartTransaction: Sm
27
27
  stx_duplicated?: undefined;
28
28
  stx_timed_out?: undefined;
29
29
  stx_proxied?: undefined;
30
+ stx_original_transaction_status?: undefined;
30
31
  } | {
31
32
  stx_status: string | undefined;
32
33
  type: string | undefined;
@@ -38,6 +39,7 @@ export declare const getSmartTransactionMetricsProperties: (smartTransaction: Sm
38
39
  stx_duplicated: boolean | undefined;
39
40
  stx_timed_out: boolean | undefined;
40
41
  stx_proxied: boolean | undefined;
42
+ stx_original_transaction_status: import("./types.cjs").OriginalTransactionStatus | undefined;
41
43
  };
42
44
  export declare const getSmartTransactionMetricsSensitiveProperties: (smartTransaction: SmartTransaction) => {
43
45
  token_from_symbol?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.cts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0CAA0C,EAC1C,4CAA4C,EAE7C,yCAAyC;AAW1C,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,8BAA8B,EAC/B,oBAAgB;AACjB,OAAO,EACL,OAAO,EACP,wBAAwB,EAIxB,QAAQ,EACT,oBAAgB;AAEjB,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,gBAAgB,WAE3E;AAED,eAAO,MAAM,gCAAgC,cAChC,uBAAuB,GAAG,MAAM,YACV,CAAC;AAGpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA+B1E;AAED,eAAO,MAAM,eAAe,cAAe,uBAAuB,6BAuCjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,kCACA,MAAM,GAAG,SAAS,KAChD,MAAM,GAAG,SAKX,CAAC;AAEF,eAAO,MAAM,cAAc,QACpB,OAAO,MAAM,EAAE,GAAG,CAAC,KACvB,OAAO,MAAM,EAAE,GAAG,CAcpB,CAAC;AAEF,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,gBAavE;AAED,eAAO,MAAM,6BAA6B,cAC7B,uBAAuB,KACjC,OAOF,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAAgB,MAAM,KAAG,MAGxD,CAAC;AAMF,eAAO,MAAM,SAAS,gBAAiB,GAAG,WAazC,CAAC;AAEF,eAAO,MAAM,oCAAoC,qBAC7B,gBAAgB;;;;;;;;;;;;;;;;;;;;;;CAkBnC,CAAC;AAEF,eAAO,MAAM,6CAA6C,qBACtC,gBAAgB;;;;;;;;;;;;CAYnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,QAAQ,gBACJ,8BAA8B,wBAK7C,CAAC;AAEF,eAAO,MAAM,qCAAqC;sBAK9B,gBAAgB;cACxB,QAAQ;kBACJ,8BAA8B;MAC1C,OAgBH,CAAC;AAEF,eAAO,MAAM,+BAA+B;sBAKxB,gBAAgB;4BACV,0CAA0C,CAAC,SAAS,CAAC;uBAC1D,4CAA4C,CAAC,SAAS,CAAC;UA8B3E,CAAC"}
1
+ {"version":3,"file":"utils.d.cts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0CAA0C,EAC1C,4CAA4C,EAE7C,yCAAyC;AAW1C,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,8BAA8B,EAC/B,oBAAgB;AACjB,OAAO,EACL,OAAO,EACP,wBAAwB,EAIxB,QAAQ,EACT,oBAAgB;AAEjB,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,gBAAgB,WAE3E;AAED,eAAO,MAAM,gCAAgC,cAChC,uBAAuB,GAAG,MAAM,YACV,CAAC;AAGpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA+B1E;AAED,eAAO,MAAM,eAAe,cAAe,uBAAuB,6BAuCjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,kCACA,MAAM,GAAG,SAAS,KAChD,MAAM,GAAG,SAKX,CAAC;AAEF,eAAO,MAAM,cAAc,QACpB,OAAO,MAAM,EAAE,GAAG,CAAC,KACvB,OAAO,MAAM,EAAE,GAAG,CAcpB,CAAC;AAEF,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,gBAavE;AAED,eAAO,MAAM,6BAA6B,cAC7B,uBAAuB,KACjC,OAOF,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAAgB,MAAM,KAAG,MAGxD,CAAC;AAMF,eAAO,MAAM,SAAS,gBAAiB,GAAG,WAazC,CAAC;AAEF,eAAO,MAAM,oCAAoC,qBAC7B,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;CAoBnC,CAAC;AAEF,eAAO,MAAM,6CAA6C,qBACtC,gBAAgB;;;;;;;;;;;;CAYnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,QAAQ,gBACJ,8BAA8B,wBAK7C,CAAC;AAEF,eAAO,MAAM,qCAAqC;sBAK9B,gBAAgB;cACxB,QAAQ;kBACJ,8BAA8B;MAC1C,OAgBH,CAAC;AAEF,eAAO,MAAM,+BAA+B;sBAKxB,gBAAgB;4BACV,0CAA0C,CAAC,SAAS,CAAC;uBAC1D,4CAA4C,CAAC,SAAS,CAAC;UAmC3E,CAAC"}
package/dist/utils.d.mts CHANGED
@@ -27,6 +27,7 @@ export declare const getSmartTransactionMetricsProperties: (smartTransaction: Sm
27
27
  stx_duplicated?: undefined;
28
28
  stx_timed_out?: undefined;
29
29
  stx_proxied?: undefined;
30
+ stx_original_transaction_status?: undefined;
30
31
  } | {
31
32
  stx_status: string | undefined;
32
33
  type: string | undefined;
@@ -38,6 +39,7 @@ export declare const getSmartTransactionMetricsProperties: (smartTransaction: Sm
38
39
  stx_duplicated: boolean | undefined;
39
40
  stx_timed_out: boolean | undefined;
40
41
  stx_proxied: boolean | undefined;
42
+ stx_original_transaction_status: import("./types.mjs").OriginalTransactionStatus | undefined;
41
43
  };
42
44
  export declare const getSmartTransactionMetricsSensitiveProperties: (smartTransaction: SmartTransaction) => {
43
45
  token_from_symbol?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.mts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0CAA0C,EAC1C,4CAA4C,EAE7C,yCAAyC;AAW1C,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,8BAA8B,EAC/B,oBAAgB;AACjB,OAAO,EACL,OAAO,EACP,wBAAwB,EAIxB,QAAQ,EACT,oBAAgB;AAEjB,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,gBAAgB,WAE3E;AAED,eAAO,MAAM,gCAAgC,cAChC,uBAAuB,GAAG,MAAM,YACV,CAAC;AAGpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA+B1E;AAED,eAAO,MAAM,eAAe,cAAe,uBAAuB,6BAuCjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,kCACA,MAAM,GAAG,SAAS,KAChD,MAAM,GAAG,SAKX,CAAC;AAEF,eAAO,MAAM,cAAc,QACpB,OAAO,MAAM,EAAE,GAAG,CAAC,KACvB,OAAO,MAAM,EAAE,GAAG,CAcpB,CAAC;AAEF,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,gBAavE;AAED,eAAO,MAAM,6BAA6B,cAC7B,uBAAuB,KACjC,OAOF,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAAgB,MAAM,KAAG,MAGxD,CAAC;AAMF,eAAO,MAAM,SAAS,gBAAiB,GAAG,WAazC,CAAC;AAEF,eAAO,MAAM,oCAAoC,qBAC7B,gBAAgB;;;;;;;;;;;;;;;;;;;;;;CAkBnC,CAAC;AAEF,eAAO,MAAM,6CAA6C,qBACtC,gBAAgB;;;;;;;;;;;;CAYnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,QAAQ,gBACJ,8BAA8B,wBAK7C,CAAC;AAEF,eAAO,MAAM,qCAAqC;sBAK9B,gBAAgB;cACxB,QAAQ;kBACJ,8BAA8B;MAC1C,OAgBH,CAAC;AAEF,eAAO,MAAM,+BAA+B;sBAKxB,gBAAgB;4BACV,0CAA0C,CAAC,SAAS,CAAC;uBAC1D,4CAA4C,CAAC,SAAS,CAAC;UA8B3E,CAAC"}
1
+ {"version":3,"file":"utils.d.mts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0CAA0C,EAC1C,4CAA4C,EAE7C,yCAAyC;AAW1C,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,8BAA8B,EAC/B,oBAAgB;AACjB,OAAO,EACL,OAAO,EACP,wBAAwB,EAIxB,QAAQ,EACT,oBAAgB;AAEjB,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,gBAAgB,WAE3E;AAED,eAAO,MAAM,gCAAgC,cAChC,uBAAuB,GAAG,MAAM,YACV,CAAC;AAGpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA+B1E;AAED,eAAO,MAAM,eAAe,cAAe,uBAAuB,6BAuCjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,kCACA,MAAM,GAAG,SAAS,KAChD,MAAM,GAAG,SAKX,CAAC;AAEF,eAAO,MAAM,cAAc,QACpB,OAAO,MAAM,EAAE,GAAG,CAAC,KACvB,OAAO,MAAM,EAAE,GAAG,CAcpB,CAAC;AAEF,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,gBAavE;AAED,eAAO,MAAM,6BAA6B,cAC7B,uBAAuB,KACjC,OAOF,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAAgB,MAAM,KAAG,MAGxD,CAAC;AAMF,eAAO,MAAM,SAAS,gBAAiB,GAAG,WAazC,CAAC;AAEF,eAAO,MAAM,oCAAoC,qBAC7B,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;CAoBnC,CAAC;AAEF,eAAO,MAAM,6CAA6C,qBACtC,gBAAgB;;;;;;;;;;;;CAYnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,QAAQ,gBACJ,8BAA8B,wBAK7C,CAAC;AAEF,eAAO,MAAM,qCAAqC;sBAK9B,gBAAgB;cACxB,QAAQ;kBACJ,8BAA8B;MAC1C,OAgBH,CAAC;AAEF,eAAO,MAAM,+BAA+B;sBAKxB,gBAAgB;4BACV,0CAA0C,CAAC,SAAS,CAAC;uBAC1D,4CAA4C,CAAC,SAAS,CAAC;UAmC3E,CAAC"}
package/dist/utils.mjs CHANGED
@@ -168,6 +168,7 @@ export const getSmartTransactionMetricsProperties = (smartTransaction) => {
168
168
  stx_duplicated: smartTransactionStatusMetadata === null || smartTransactionStatusMetadata === void 0 ? void 0 : smartTransactionStatusMetadata.duplicated,
169
169
  stx_timed_out: smartTransactionStatusMetadata === null || smartTransactionStatusMetadata === void 0 ? void 0 : smartTransactionStatusMetadata.timedOut,
170
170
  stx_proxied: smartTransactionStatusMetadata === null || smartTransactionStatusMetadata === void 0 ? void 0 : smartTransactionStatusMetadata.proxied,
171
+ stx_original_transaction_status: smartTransactionStatusMetadata === null || smartTransactionStatusMetadata === void 0 ? void 0 : smartTransactionStatusMetadata.originalTransactionStatus,
171
172
  };
172
173
  };
173
174
  export const getSmartTransactionMetricsSensitiveProperties = (smartTransaction) => {
@@ -203,18 +204,22 @@ export const shouldMarkRegularTransactionsAsFailed = ({ smartTransaction, client
203
204
  return Boolean(returnTxHashAsapEnabled && transactionId);
204
205
  };
205
206
  export const markRegularTransactionsAsFailed = ({ smartTransaction, getRegularTransactions, updateTransaction, }) => {
206
- const { transactionId, status, txHashes } = smartTransaction;
207
+ const { transactionId, status, statusMetadata, txHashes } = smartTransaction;
208
+ const originalTransactionStatus = statusMetadata === null || statusMetadata === void 0 ? void 0 : statusMetadata.originalTransactionStatus;
207
209
  const transactionsToFail = getRegularTransactions().filter((tx) => (tx.hash && (txHashes === null || txHashes === void 0 ? void 0 : txHashes.includes(tx.hash))) || tx.id === transactionId);
208
210
  if (!transactionsToFail.length) {
209
211
  throw new Error('Cannot find regular transaction to mark it as failed');
210
212
  }
213
+ const errorMessage = originalTransactionStatus
214
+ ? `Smart transaction failed with status: ${status}, originalTransactionStatus: ${originalTransactionStatus}`
215
+ : `Smart transaction failed with status: ${status}`;
211
216
  for (const tx of transactionsToFail) {
212
217
  if (tx.status === TransactionStatus.failed) {
213
218
  continue; // Already marked as failed.
214
219
  }
215
220
  const updatedTransaction = Object.assign(Object.assign({}, tx), { status: TransactionStatus.failed, error: {
216
221
  name: 'SmartTransactionFailed',
217
- message: `Smart transaction failed with status: ${status}`,
222
+ message: errorMessage,
218
223
  } });
219
224
  updateTransaction(updatedTransaction, `Smart transaction status: ${status}`);
220
225
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,6BAA6B;AACzD,OAAO,EAAE,SAAS,EAAE,iCAAiC;AACrD,OAAO,EAAE,KAAK,EAAE,oCAAoC;AAMpD,OAAO,EAAE,iBAAiB,EAAE,yCAAyC;AACrE,OAAO,EAAE,SAAS,EAAE,qBAAqB;AACzC,OAAO,EAAC,eAAe;;AAEvB,mGAAmG;AACnG,uDAAuD;AACvD,6DAA6D;AAC7D,aAAa;AACb,OAAO,WAAW,gDAAwB;AAC1C,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,wBAAoB;AAMtE,OAAO,EACL,OAAO,EACP,wBAAwB,EACxB,kCAAkC,EAClC,uBAAuB,EACvB,6BAA6B,EAC7B,QAAQ,EACT,oBAAgB;AAEjB,MAAM,UAAU,yBAAyB,CAAC,gBAAkC;IAC1E,OAAO,gBAAgB,CAAC,MAAM,KAAK,wBAAwB,CAAC,OAAO,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,SAA2C,EAC3C,EAAE,CAAC,SAAS,KAAK,gBAAgB,CAAC;AAEpC,0CAA0C;AAC1C,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,OAAe;IAChE,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACzC,QAAQ,OAAO,EAAE;QACf,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrB,OAAO,GAAG,YAAY,aAAa,UAAU,UAAU,CAAC;SACzD;QAED,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;YACzB,OAAO,GAAG,YAAY,aAAa,UAAU,cAAc,CAAC;SAC7D;QAED,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAChC,OAAO,GAAG,YAAY,aAAa,UAAU,4CAA4C,WAAW,CAAC,OAAO,EAAE,CAAC;SAChH;QAED,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;YACnB,OAAO,GAAG,YAAY,aAAa,UAAU,SAAS,CAAC;SACxD;QAED,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;YACzB,OAAO,GAAG,YAAY,aAAa,UAAU,cAAc,CAAC;SAC7D;QAED,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrB,OAAO,GAAG,yBAAyB,CAAC,UAAU,CAAC,UAAU,CAAC;SAC3D;QAED,OAAO,CAAC,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,8CAA8C;SACnF;KACF;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAkC,EAAE,EAAE;IACpE,IAAI,gCAAgC,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO,wBAAwB,CAAC,QAAQ,CAAC;KAC1C;IACD,MAAM,aAAa,GAAG;QACpB,kCAAkC,CAAC,YAAY;QAC/C,kCAAkC,CAAC,SAAS;QAC5C,kCAAkC,CAAC,eAAe;QAClD,kCAAkC,CAAC,aAAa;QAChD,kCAAkC,CAAC,cAAc;KAClD,CAAC;IACF,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,MAAK,uBAAuB,CAAC,SAAS,EAAE;QAC5D,IACE,SAAS,CAAC,kBAAkB;YAC5B,kCAAkC,CAAC,aAAa,EAChD;YACA,OAAO,wBAAwB,CAAC,OAAO,CAAC;SACzC;QAED,MAAM,cAAc,GAClB,aAAa,CAAC,SAAS,CACrB,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,KAAK,SAAS,CAAC,kBAAkB,CAChE,GAAG,CAAC,CAAC,CAAC;QACT,IAAI,SAAS,CAAC,kBAAkB,IAAI,cAAc,EAAE;YAClD,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACxB,OAAO,wBAAwB,CAAC,OAAO,CAAC;aACzC;YACD,OAAO,6BAA6B,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;SACpE;KACF;SAAM,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,MAAK,uBAAuB,CAAC,OAAO,EAAE;QACjE,OAAO,wBAAwB,CAAC,OAAO,CAAC;KACzC;SAAM,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,MAAK,uBAAuB,CAAC,SAAS,EAAE;QACnE,OAAO,wBAAwB,CAAC,SAAS,CAAC;KAC3C;SAAM,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,MAAK,uBAAuB,CAAC,QAAQ,EAAE;QAClE,OAAO,wBAAwB,CAAC,QAAQ,CAAC;KAC1C;SAAM,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,MAAK,uBAAuB,CAAC,OAAO,EAAE;QACjE,OAAO,wBAAwB,CAAC,OAAO,CAAC;KACzC;IACD,OAAO,wBAAwB,CAAC,OAAO,CAAC;AAC1C,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,6BAAiD,EAC7B,EAAE;IACtB,IAAI,CAAC,6BAA6B,EAAE;QAClC,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,6BAA6B,CAAC,GAAG,IAAI,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,GAAwB,EACH,EAAE;IACvB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC;KACZ;IACD,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAwB,EAAE,EAAE;QACjE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;SAChC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC1B,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;SAC5B;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IACH,6DAA6D;IAC7D,OAAO,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,OAAqB;IACtE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,CAAC,SAAS,iBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM,IACpB,cAAc,CAAC,IAAI,CAAC,EACvB,EAAE,CACL,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,SAAkC,EACzB,EAAE;IACX,OAAO,CACL,SAAS,CAAC,OAAO,KAAK,uBAAuB,CAAC,SAAS;QACvD,CAAC,CAAC,SAAS,CAAC,kBAAkB;YAC5B,SAAS,CAAC,kBAAkB;gBAC1B,kCAAkC,CAAC,aAAa,CAAC,CACtD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAU,EAAE;IAChE,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,WAAmB,EAAE,EAAE;IACjD,OAAO,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,WAAgB,EAAE,EAAE;;IAC5C,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,EAAE,CAAC;KACX;IACD,IAAI;QACF,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,EAAE,CAAC;KAC3B;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE;YACnC,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAClD;QACD,MAAM,KAAK,CAAC;KACb;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,gBAAkC,EAClC,EAAE;IACF,IAAI,CAAC,gBAAgB,EAAE;QACrB,OAAO,EAAE,CAAC;KACX;IACD,MAAM,8BAA8B,GAAG,gBAAgB,CAAC,cAAc,CAAC;IACvE,OAAO;QACL,UAAU,EAAE,gBAAgB,CAAC,MAAM;QACnC,IAAI,EAAE,gBAAgB,CAAC,IAAI;QAC3B,eAAe,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAC5D,oBAAoB,EAAE,IAAI;QAC1B,WAAW,EAAE,IAAI;QACjB,mBAAmB,EAAE,IAAI;QACzB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,8BAA8B,aAA9B,8BAA8B,uBAA9B,8BAA8B,CAAE,UAAU;QAC1D,aAAa,EAAE,8BAA8B,aAA9B,8BAA8B,uBAA9B,8BAA8B,CAAE,QAAQ;QACvD,WAAW,EAAE,8BAA8B,aAA9B,8BAA8B,uBAA9B,8BAA8B,CAAE,OAAO;KACrD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6CAA6C,GAAG,CAC3D,gBAAkC,EAClC,EAAE;IACF,IAAI,CAAC,gBAAgB,EAAE;QACrB,OAAO,EAAE,CAAC;KACX;IACD,OAAO;QACL,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;QACrD,eAAe,EAAE,gBAAgB,CAAC,sBAAsB;QACxD,qBAAqB,EAAE,gBAAgB,CAAC,mBAAmB;QAC3D,YAAY,EAAE,gBAAgB,CAAC,WAAW;QAC1C,YAAY,EAAE,gBAAgB,CAAC,WAAW;KAC3C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAAkB,EAClB,YAA4C,EAC5C,EAAE;IACF,OAAO,QAAQ,KAAK,QAAQ,CAAC,SAAS;QACpC,CAAC,CAAC,YAAY,CAAC,yBAAyB;QACxC,CAAC,CAAC,YAAY,CAAC,sBAAsB,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,EACpD,gBAAgB,EAChB,QAAQ,EACR,YAAY,GAKb,EAAW,EAAE;IACZ,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC;IACnD,MAAM,eAAe,GAA+B;QAClD,wBAAwB,CAAC,SAAS;QAClC,wBAAwB,CAAC,wBAAwB;QACjD,wBAAwB,CAAC,OAAO;QAChC,wBAAwB,CAAC,QAAQ;KAClC,CAAC;IACF,IACE,CAAC,MAAM;QACP,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAkC,CAAC,EAC7D;QACA,OAAO,KAAK,CAAC;KACd;IACD,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC5E,OAAO,OAAO,CAAC,uBAAuB,IAAI,aAAa,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,EAC9C,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,GAKlB,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC;IAE7D,MAAM,kBAAkB,GAAG,sBAAsB,EAAE,CAAC,MAAM,CACxD,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,aAAa,CAC5E,CAAC;IAEF,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;KACzE;IAED,KAAK,MAAM,EAAE,IAAI,kBAAkB,EAAE;QACnC,IAAI,EAAE,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE;YAC1C,SAAS,CAAC,4BAA4B;SACvC;QACD,MAAM,kBAAkB,mCACnB,EAAE,KACL,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAChC,KAAK,EAAE;gBACL,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,yCAAyC,MAAM,EAAE;aAC3D,GACF,CAAC;QAEF,iBAAiB,CACf,kBAAkB,EAClB,6BAA6B,MAAM,EAAE,CACtC,CAAC;KACH;AACH,CAAC,CAAC","sourcesContent":["import { arrayify, hexlify } from '@ethersproject/bytes';\nimport { keccak256 } from '@ethersproject/keccak256';\nimport { parse } from '@ethersproject/transactions';\nimport type {\n TransactionControllerGetTransactionsAction,\n TransactionControllerUpdateTransactionAction,\n TransactionMeta,\n} from '@metamask/transaction-controller';\nimport { TransactionStatus } from '@metamask/transaction-controller';\nimport { BigNumber } from 'bignumber.js';\nimport _ from 'lodash';\n\n// Ignoring TypeScript errors here because this import is disallowed for production builds, because\n// the `package.json` file is above the root directory.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport packageJson from '../package.json';\nimport { API_BASE_URL, SENTINEL_API_BASE_URL_MAP } from './constants';\nimport type {\n SmartTransaction,\n SmartTransactionsStatus,\n SmartTransactionsNetworkConfig,\n} from './types';\nimport {\n APIType,\n SmartTransactionStatuses,\n SmartTransactionCancellationReason,\n SmartTransactionMinedTx,\n cancellationReasonToStatusMap,\n ClientId,\n} from './types';\n\nexport function isSmartTransactionPending(smartTransaction: SmartTransaction) {\n return smartTransaction.status === SmartTransactionStatuses.PENDING;\n}\n\nexport const isSmartTransactionStatusResolved = (\n stxStatus: SmartTransactionsStatus | string,\n) => stxStatus === 'uuid_not_found';\n\n// TODO use actual url once API is defined\nexport function getAPIRequestURL(apiType: APIType, chainId: string): string {\n const chainIdDec = parseInt(chainId, 16);\n switch (apiType) {\n case APIType.GET_FEES: {\n return `${API_BASE_URL}/networks/${chainIdDec}/getFees`;\n }\n\n case APIType.ESTIMATE_GAS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/estimateGas`;\n }\n\n case APIType.SUBMIT_TRANSACTIONS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/submitTransactions?stxControllerVersion=${packageJson.version}`;\n }\n\n case APIType.CANCEL: {\n return `${API_BASE_URL}/networks/${chainIdDec}/cancel`;\n }\n\n case APIType.BATCH_STATUS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/batchStatus`;\n }\n\n case APIType.LIVENESS: {\n return `${SENTINEL_API_BASE_URL_MAP[chainIdDec]}/network`;\n }\n\n default: {\n throw new Error(`Invalid APIType`); // It can never get here thanks to TypeScript.\n }\n }\n}\n\nexport const calculateStatus = (stxStatus: SmartTransactionsStatus) => {\n if (isSmartTransactionStatusResolved(stxStatus)) {\n return SmartTransactionStatuses.RESOLVED;\n }\n const cancellations = [\n SmartTransactionCancellationReason.WOULD_REVERT,\n SmartTransactionCancellationReason.TOO_CHEAP,\n SmartTransactionCancellationReason.DEADLINE_MISSED,\n SmartTransactionCancellationReason.INVALID_NONCE,\n SmartTransactionCancellationReason.USER_CANCELLED,\n ];\n if (stxStatus?.minedTx === SmartTransactionMinedTx.NOT_MINED) {\n if (\n stxStatus.cancellationReason ===\n SmartTransactionCancellationReason.NOT_CANCELLED\n ) {\n return SmartTransactionStatuses.PENDING;\n }\n\n const isCancellation =\n cancellations.findIndex(\n (cancellation) => cancellation === stxStatus.cancellationReason,\n ) > -1;\n if (stxStatus.cancellationReason && isCancellation) {\n if (!stxStatus.isSettled) {\n return SmartTransactionStatuses.PENDING;\n }\n return cancellationReasonToStatusMap[stxStatus.cancellationReason];\n }\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.SUCCESS) {\n return SmartTransactionStatuses.SUCCESS;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.CANCELLED) {\n return SmartTransactionStatuses.CANCELLED;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.REVERTED) {\n return SmartTransactionStatuses.REVERTED;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.UNKNOWN) {\n return SmartTransactionStatuses.UNKNOWN;\n }\n return SmartTransactionStatuses.UNKNOWN;\n};\n\n/**\n * Returns processing time for an STX in seconds.\n * @param smartTransactionSubmittedtime\n * @returns Processing time in seconds.\n */\nexport const getStxProcessingTime = (\n smartTransactionSubmittedtime: number | undefined,\n): number | undefined => {\n if (!smartTransactionSubmittedtime) {\n return undefined;\n }\n return Math.round((Date.now() - smartTransactionSubmittedtime) / 1000);\n};\n\nexport const mapKeysToCamel = (\n obj: Record<string, any>,\n): Record<string, any> => {\n if (!_.isObject(obj)) {\n return obj;\n }\n const mappedValues = _.mapValues(obj, (val: Record<string, any>) => {\n if (_.isArray(val)) {\n return val.map(mapKeysToCamel);\n } else if (_.isObject(val)) {\n return mapKeysToCamel(val);\n }\n return val;\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return _.mapKeys(mappedValues, (value, key) => _.camelCase(key));\n};\n\nexport async function handleFetch(request: string, options?: RequestInit) {\n const response = await fetch(request, options);\n const json = await response.json();\n if (!response.ok) {\n console.log(`response`, response);\n throw new Error(\n `Fetch error:${JSON.stringify({\n status: response.status,\n ...mapKeysToCamel(json),\n })}`,\n );\n }\n return json;\n}\n\nexport const isSmartTransactionCancellable = (\n stxStatus: SmartTransactionsStatus,\n): boolean => {\n return (\n stxStatus.minedTx === SmartTransactionMinedTx.NOT_MINED &&\n (!stxStatus.cancellationReason ||\n stxStatus.cancellationReason ===\n SmartTransactionCancellationReason.NOT_CANCELLED)\n );\n};\n\nexport const incrementNonceInHex = (nonceInHex: string): string => {\n const nonceInDec = new BigNumber(nonceInHex, 16).toString(10);\n return hexlify(Number(nonceInDec) + 1);\n};\n\nconst isType4Transaction = (signedTxHex: string) => {\n return typeof signedTxHex === 'string' && signedTxHex.startsWith('0x04');\n};\n\nexport const getTxHash = (signedTxHex: any) => {\n if (!signedTxHex) {\n return '';\n }\n try {\n const parsed = parse(signedTxHex);\n return parsed?.hash ?? '';\n } catch (error) {\n if (isType4Transaction(signedTxHex)) {\n return hexlify(keccak256(arrayify(signedTxHex)));\n }\n throw error;\n }\n};\n\nexport const getSmartTransactionMetricsProperties = (\n smartTransaction: SmartTransaction,\n) => {\n if (!smartTransaction) {\n return {};\n }\n const smartTransactionStatusMetadata = smartTransaction.statusMetadata;\n return {\n stx_status: smartTransaction.status,\n type: smartTransaction.type,\n processing_time: getStxProcessingTime(smartTransaction.time),\n is_smart_transaction: true,\n stx_enabled: true,\n current_stx_enabled: true,\n stx_user_opt_in: true,\n stx_duplicated: smartTransactionStatusMetadata?.duplicated,\n stx_timed_out: smartTransactionStatusMetadata?.timedOut,\n stx_proxied: smartTransactionStatusMetadata?.proxied,\n };\n};\n\nexport const getSmartTransactionMetricsSensitiveProperties = (\n smartTransaction: SmartTransaction,\n) => {\n if (!smartTransaction) {\n return {};\n }\n return {\n token_from_symbol: smartTransaction.sourceTokenSymbol,\n token_to_symbol: smartTransaction.destinationTokenSymbol,\n account_hardware_type: smartTransaction.accountHardwareType,\n account_type: smartTransaction.accountType,\n device_model: smartTransaction.deviceModel,\n };\n};\n\nexport const getReturnTxHashAsap = (\n clientId: ClientId,\n featureFlags: SmartTransactionsNetworkConfig,\n) => {\n return clientId === ClientId.Extension\n ? featureFlags.extensionReturnTxHashAsap\n : featureFlags.mobileReturnTxHashAsap;\n};\n\nexport const shouldMarkRegularTransactionsAsFailed = ({\n smartTransaction,\n clientId,\n featureFlags,\n}: {\n smartTransaction: SmartTransaction;\n clientId: ClientId;\n featureFlags: SmartTransactionsNetworkConfig;\n}): boolean => {\n const { status, transactionId } = smartTransaction;\n const failureStatuses: SmartTransactionStatuses[] = [\n SmartTransactionStatuses.CANCELLED,\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n SmartTransactionStatuses.UNKNOWN,\n SmartTransactionStatuses.RESOLVED,\n ];\n if (\n !status ||\n !failureStatuses.includes(status as SmartTransactionStatuses)\n ) {\n return false;\n }\n const returnTxHashAsapEnabled = getReturnTxHashAsap(clientId, featureFlags);\n return Boolean(returnTxHashAsapEnabled && transactionId);\n};\n\nexport const markRegularTransactionsAsFailed = ({\n smartTransaction,\n getRegularTransactions,\n updateTransaction,\n}: {\n smartTransaction: SmartTransaction;\n getRegularTransactions: TransactionControllerGetTransactionsAction['handler'];\n updateTransaction: TransactionControllerUpdateTransactionAction['handler'];\n}) => {\n const { transactionId, status, txHashes } = smartTransaction;\n\n const transactionsToFail = getRegularTransactions().filter(\n (tx) => (tx.hash && txHashes?.includes(tx.hash)) || tx.id === transactionId,\n );\n\n if (!transactionsToFail.length) {\n throw new Error('Cannot find regular transaction to mark it as failed');\n }\n\n for (const tx of transactionsToFail) {\n if (tx.status === TransactionStatus.failed) {\n continue; // Already marked as failed.\n }\n const updatedTransaction: TransactionMeta = {\n ...tx,\n status: TransactionStatus.failed,\n error: {\n name: 'SmartTransactionFailed',\n message: `Smart transaction failed with status: ${status}`,\n },\n };\n\n updateTransaction(\n updatedTransaction,\n `Smart transaction status: ${status}`,\n );\n }\n};\n"]}
1
+ {"version":3,"file":"utils.mjs","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { arrayify, hexlify } from '@ethersproject/bytes';\nimport { keccak256 } from '@ethersproject/keccak256';\nimport { parse } from '@ethersproject/transactions';\nimport type {\n TransactionControllerGetTransactionsAction,\n TransactionControllerUpdateTransactionAction,\n TransactionMeta,\n} from '@metamask/transaction-controller';\nimport { TransactionStatus } from '@metamask/transaction-controller';\nimport { BigNumber } from 'bignumber.js';\nimport _ from 'lodash';\n\n// Ignoring TypeScript errors here because this import is disallowed for production builds, because\n// the `package.json` file is above the root directory.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport packageJson from '../package.json';\nimport { API_BASE_URL, SENTINEL_API_BASE_URL_MAP } from './constants';\nimport type {\n SmartTransaction,\n SmartTransactionsStatus,\n SmartTransactionsNetworkConfig,\n} from './types';\nimport {\n APIType,\n SmartTransactionStatuses,\n SmartTransactionCancellationReason,\n SmartTransactionMinedTx,\n cancellationReasonToStatusMap,\n ClientId,\n} from './types';\n\nexport function isSmartTransactionPending(smartTransaction: SmartTransaction) {\n return smartTransaction.status === SmartTransactionStatuses.PENDING;\n}\n\nexport const isSmartTransactionStatusResolved = (\n stxStatus: SmartTransactionsStatus | string,\n) => stxStatus === 'uuid_not_found';\n\n// TODO use actual url once API is defined\nexport function getAPIRequestURL(apiType: APIType, chainId: string): string {\n const chainIdDec = parseInt(chainId, 16);\n switch (apiType) {\n case APIType.GET_FEES: {\n return `${API_BASE_URL}/networks/${chainIdDec}/getFees`;\n }\n\n case APIType.ESTIMATE_GAS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/estimateGas`;\n }\n\n case APIType.SUBMIT_TRANSACTIONS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/submitTransactions?stxControllerVersion=${packageJson.version}`;\n }\n\n case APIType.CANCEL: {\n return `${API_BASE_URL}/networks/${chainIdDec}/cancel`;\n }\n\n case APIType.BATCH_STATUS: {\n return `${API_BASE_URL}/networks/${chainIdDec}/batchStatus`;\n }\n\n case APIType.LIVENESS: {\n return `${SENTINEL_API_BASE_URL_MAP[chainIdDec]}/network`;\n }\n\n default: {\n throw new Error(`Invalid APIType`); // It can never get here thanks to TypeScript.\n }\n }\n}\n\nexport const calculateStatus = (stxStatus: SmartTransactionsStatus) => {\n if (isSmartTransactionStatusResolved(stxStatus)) {\n return SmartTransactionStatuses.RESOLVED;\n }\n const cancellations = [\n SmartTransactionCancellationReason.WOULD_REVERT,\n SmartTransactionCancellationReason.TOO_CHEAP,\n SmartTransactionCancellationReason.DEADLINE_MISSED,\n SmartTransactionCancellationReason.INVALID_NONCE,\n SmartTransactionCancellationReason.USER_CANCELLED,\n ];\n if (stxStatus?.minedTx === SmartTransactionMinedTx.NOT_MINED) {\n if (\n stxStatus.cancellationReason ===\n SmartTransactionCancellationReason.NOT_CANCELLED\n ) {\n return SmartTransactionStatuses.PENDING;\n }\n\n const isCancellation =\n cancellations.findIndex(\n (cancellation) => cancellation === stxStatus.cancellationReason,\n ) > -1;\n if (stxStatus.cancellationReason && isCancellation) {\n if (!stxStatus.isSettled) {\n return SmartTransactionStatuses.PENDING;\n }\n return cancellationReasonToStatusMap[stxStatus.cancellationReason];\n }\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.SUCCESS) {\n return SmartTransactionStatuses.SUCCESS;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.CANCELLED) {\n return SmartTransactionStatuses.CANCELLED;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.REVERTED) {\n return SmartTransactionStatuses.REVERTED;\n } else if (stxStatus?.minedTx === SmartTransactionMinedTx.UNKNOWN) {\n return SmartTransactionStatuses.UNKNOWN;\n }\n return SmartTransactionStatuses.UNKNOWN;\n};\n\n/**\n * Returns processing time for an STX in seconds.\n * @param smartTransactionSubmittedtime\n * @returns Processing time in seconds.\n */\nexport const getStxProcessingTime = (\n smartTransactionSubmittedtime: number | undefined,\n): number | undefined => {\n if (!smartTransactionSubmittedtime) {\n return undefined;\n }\n return Math.round((Date.now() - smartTransactionSubmittedtime) / 1000);\n};\n\nexport const mapKeysToCamel = (\n obj: Record<string, any>,\n): Record<string, any> => {\n if (!_.isObject(obj)) {\n return obj;\n }\n const mappedValues = _.mapValues(obj, (val: Record<string, any>) => {\n if (_.isArray(val)) {\n return val.map(mapKeysToCamel);\n } else if (_.isObject(val)) {\n return mapKeysToCamel(val);\n }\n return val;\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return _.mapKeys(mappedValues, (value, key) => _.camelCase(key));\n};\n\nexport async function handleFetch(request: string, options?: RequestInit) {\n const response = await fetch(request, options);\n const json = await response.json();\n if (!response.ok) {\n console.log(`response`, response);\n throw new Error(\n `Fetch error:${JSON.stringify({\n status: response.status,\n ...mapKeysToCamel(json),\n })}`,\n );\n }\n return json;\n}\n\nexport const isSmartTransactionCancellable = (\n stxStatus: SmartTransactionsStatus,\n): boolean => {\n return (\n stxStatus.minedTx === SmartTransactionMinedTx.NOT_MINED &&\n (!stxStatus.cancellationReason ||\n stxStatus.cancellationReason ===\n SmartTransactionCancellationReason.NOT_CANCELLED)\n );\n};\n\nexport const incrementNonceInHex = (nonceInHex: string): string => {\n const nonceInDec = new BigNumber(nonceInHex, 16).toString(10);\n return hexlify(Number(nonceInDec) + 1);\n};\n\nconst isType4Transaction = (signedTxHex: string) => {\n return typeof signedTxHex === 'string' && signedTxHex.startsWith('0x04');\n};\n\nexport const getTxHash = (signedTxHex: any) => {\n if (!signedTxHex) {\n return '';\n }\n try {\n const parsed = parse(signedTxHex);\n return parsed?.hash ?? '';\n } catch (error) {\n if (isType4Transaction(signedTxHex)) {\n return hexlify(keccak256(arrayify(signedTxHex)));\n }\n throw error;\n }\n};\n\nexport const getSmartTransactionMetricsProperties = (\n smartTransaction: SmartTransaction,\n) => {\n if (!smartTransaction) {\n return {};\n }\n const smartTransactionStatusMetadata = smartTransaction.statusMetadata;\n return {\n stx_status: smartTransaction.status,\n type: smartTransaction.type,\n processing_time: getStxProcessingTime(smartTransaction.time),\n is_smart_transaction: true,\n stx_enabled: true,\n current_stx_enabled: true,\n stx_user_opt_in: true,\n stx_duplicated: smartTransactionStatusMetadata?.duplicated,\n stx_timed_out: smartTransactionStatusMetadata?.timedOut,\n stx_proxied: smartTransactionStatusMetadata?.proxied,\n stx_original_transaction_status:\n smartTransactionStatusMetadata?.originalTransactionStatus,\n };\n};\n\nexport const getSmartTransactionMetricsSensitiveProperties = (\n smartTransaction: SmartTransaction,\n) => {\n if (!smartTransaction) {\n return {};\n }\n return {\n token_from_symbol: smartTransaction.sourceTokenSymbol,\n token_to_symbol: smartTransaction.destinationTokenSymbol,\n account_hardware_type: smartTransaction.accountHardwareType,\n account_type: smartTransaction.accountType,\n device_model: smartTransaction.deviceModel,\n };\n};\n\nexport const getReturnTxHashAsap = (\n clientId: ClientId,\n featureFlags: SmartTransactionsNetworkConfig,\n) => {\n return clientId === ClientId.Extension\n ? featureFlags.extensionReturnTxHashAsap\n : featureFlags.mobileReturnTxHashAsap;\n};\n\nexport const shouldMarkRegularTransactionsAsFailed = ({\n smartTransaction,\n clientId,\n featureFlags,\n}: {\n smartTransaction: SmartTransaction;\n clientId: ClientId;\n featureFlags: SmartTransactionsNetworkConfig;\n}): boolean => {\n const { status, transactionId } = smartTransaction;\n const failureStatuses: SmartTransactionStatuses[] = [\n SmartTransactionStatuses.CANCELLED,\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n SmartTransactionStatuses.UNKNOWN,\n SmartTransactionStatuses.RESOLVED,\n ];\n if (\n !status ||\n !failureStatuses.includes(status as SmartTransactionStatuses)\n ) {\n return false;\n }\n const returnTxHashAsapEnabled = getReturnTxHashAsap(clientId, featureFlags);\n return Boolean(returnTxHashAsapEnabled && transactionId);\n};\n\nexport const markRegularTransactionsAsFailed = ({\n smartTransaction,\n getRegularTransactions,\n updateTransaction,\n}: {\n smartTransaction: SmartTransaction;\n getRegularTransactions: TransactionControllerGetTransactionsAction['handler'];\n updateTransaction: TransactionControllerUpdateTransactionAction['handler'];\n}) => {\n const { transactionId, status, statusMetadata, txHashes } = smartTransaction;\n const originalTransactionStatus = statusMetadata?.originalTransactionStatus;\n\n const transactionsToFail = getRegularTransactions().filter(\n (tx) => (tx.hash && txHashes?.includes(tx.hash)) || tx.id === transactionId,\n );\n\n if (!transactionsToFail.length) {\n throw new Error('Cannot find regular transaction to mark it as failed');\n }\n\n const errorMessage = originalTransactionStatus\n ? `Smart transaction failed with status: ${status}, originalTransactionStatus: ${originalTransactionStatus}`\n : `Smart transaction failed with status: ${status}`;\n\n for (const tx of transactionsToFail) {\n if (tx.status === TransactionStatus.failed) {\n continue; // Already marked as failed.\n }\n const updatedTransaction: TransactionMeta = {\n ...tx,\n status: TransactionStatus.failed,\n error: {\n name: 'SmartTransactionFailed',\n message: errorMessage,\n },\n };\n\n updateTransaction(\n updatedTransaction,\n `Smart transaction status: ${status}`,\n );\n }\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/smart-transactions-controller",
3
- "version": "22.3.0",
3
+ "version": "22.5.0",
4
4
  "description": "Improves success rates for swaps by trialing transactions privately and finding minimum fees",
5
5
  "repository": {
6
6
  "type": "git",