@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 +15 -1
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs +21 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +21 -0
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +21 -0
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +20 -0
- package/dist/types.mjs.map +1 -1
- package/dist/utils.cjs +7 -2
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +2 -0
- package/dist/utils.d.cts.map +1 -1
- package/dist/utils.d.mts +2 -0
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +7 -2
- package/dist/utils.mjs.map +1 -1
- package/package.json +1 -1
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.
|
|
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; } });
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iFAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AAWpC,
|
|
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";
|
package/dist/index.d.cts.map
CHANGED
|
@@ -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";
|
package/dist/index.d.mts.map
CHANGED
|
@@ -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
|
package/dist/index.mjs.map
CHANGED
|
@@ -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,
|
package/dist/types.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.cjs","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/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;
|
package/dist/types.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,qCAAqC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,yCAAyC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,wBAAwB;AAExD,OAAO,KAAK,EAAE,8BAA8B,EAAE,iCAAuB;AAErE,oBAAY,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,oBAAY,OAAO;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,eAAe,oBAAoB;CACpC;AAED,oBAAY,IAAI;IACd,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,iBAAiB,sBAAsB;IACvC,cAAc,mBAAmB;CAClC;AAED,UAAU;AACV,oBAAY,OAAO;IACjB,UAAU,IAAA;IACV,cAAc,IAAA;IACd,qBAAqB,IAAA;IACrB,QAAQ,IAAA;IACR,cAAc,IAAA;IACd,UAAU,IAAA;CACX;AAED,wBAAwB;AACxB,oBAAY,uBAAuB;IACjC,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED,oBAAY,kCAAkC;IAC5C,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAED,oBAAY,wBAAwB;IAClC,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,wBAAwB,6BAA6B;IACrD,QAAQ,aAAa;CACtB;AAED,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,eAAO,MAAM,6BAA6B;;;;;;CAWzC,CAAC;AAEF,oBAAY,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,kCAAkC,CAAC;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,uBAAuB,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAEF,oBAAY,GAAG,GAAG;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,IAAI,GAAG;IACjB,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtC,CAAC;AAGF,oBAAY,mBAAmB,GAAG,GAAG,CAAC;AAGtC,oBAAY,iBAAiB,GAAG,GAAG,CAAC;AAEpC,oBAAY,6BAA6B,GAAG;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB,CAAC;AAGF,oBAAY,yBAAyB,GAAG,GAAG,CAAC;AAE5C,oBAAY,gBAAgB,GAAG;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,iBAAiB,CAAC,EAAE;QAClB,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACrC,CAAC;CACH,CAAC;AAEF;;;;;;GAMG;AACH,YAAY,EAAE,8BAA8B,EAAE,CAAC;AAE/C;;;GAGG;AACH,oBAAY,mCAAmC,GAAG;IAChD,oEAAoE;IACpE,OAAO,CAAC,EAAE,8BAA8B,CAAC;CAC1C,GAAG;IACF;;;OAGG;IACH,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,GAAG,8BAA8B,GAAG,SAAS,CAAC;CAC1E,CAAC"}
|
|
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;
|
package/dist/types.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,qCAAqC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,yCAAyC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,wBAAwB;AAExD,OAAO,KAAK,EAAE,8BAA8B,EAAE,iCAAuB;AAErE,oBAAY,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,oBAAY,OAAO;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,eAAe,oBAAoB;CACpC;AAED,oBAAY,IAAI;IACd,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,iBAAiB,sBAAsB;IACvC,cAAc,mBAAmB;CAClC;AAED,UAAU;AACV,oBAAY,OAAO;IACjB,UAAU,IAAA;IACV,cAAc,IAAA;IACd,qBAAqB,IAAA;IACrB,QAAQ,IAAA;IACR,cAAc,IAAA;IACd,UAAU,IAAA;CACX;AAED,wBAAwB;AACxB,oBAAY,uBAAuB;IACjC,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED,oBAAY,kCAAkC;IAC5C,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAED,oBAAY,wBAAwB;IAClC,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,wBAAwB,6BAA6B;IACrD,QAAQ,aAAa;CACtB;AAED,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,eAAO,MAAM,6BAA6B;;;;;;CAWzC,CAAC;AAEF,oBAAY,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,kCAAkC,CAAC;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,uBAAuB,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAEF,oBAAY,GAAG,GAAG;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,IAAI,GAAG;IACjB,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtC,CAAC;AAGF,oBAAY,mBAAmB,GAAG,GAAG,CAAC;AAGtC,oBAAY,iBAAiB,GAAG,GAAG,CAAC;AAEpC,oBAAY,6BAA6B,GAAG;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB,CAAC;AAGF,oBAAY,yBAAyB,GAAG,GAAG,CAAC;AAE5C,oBAAY,gBAAgB,GAAG;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,iBAAiB,CAAC,EAAE;QAClB,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACrC,CAAC;CACH,CAAC;AAEF;;;;;;GAMG;AACH,YAAY,EAAE,8BAA8B,EAAE,CAAC;AAE/C;;;GAGG;AACH,oBAAY,mCAAmC,GAAG;IAChD,oEAAoE;IACpE,OAAO,CAAC,EAAE,8BAA8B,CAAC;CAC1C,GAAG;IACF;;;OAGG;IACH,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,GAAG,8BAA8B,GAAG,SAAS,CAAC;CAC1E,CAAC"}
|
|
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,
|
package/dist/types.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
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:
|
|
235
|
+
message: errorMessage,
|
|
231
236
|
} });
|
|
232
237
|
updateTransaction(updatedTransaction, `Smart transaction status: ${status}`);
|
|
233
238
|
}
|
package/dist/utils.cjs.map
CHANGED
|
@@ -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;
|
package/dist/utils.d.cts.map
CHANGED
|
@@ -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
|
|
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;
|
package/dist/utils.d.mts.map
CHANGED
|
@@ -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
|
|
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:
|
|
222
|
+
message: errorMessage,
|
|
218
223
|
} });
|
|
219
224
|
updateTransaction(updatedTransaction, `Smart transaction status: ${status}`);
|
|
220
225
|
}
|
package/dist/utils.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 };\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