Conversation
2e0923e to
dbcd010
Compare
|
Feel free to ignore this PR for now, we can merge it when we like. |
|
Here are the changes to the CommonJS-compatible files: diff --git a/dist/SmartTransactionsController.js b/dist/SmartTransactionsController.cjs
similarity index 99%
rename from dist/SmartTransactionsController.js
rename to dist/SmartTransactionsController.cjs
index 6a7c7e1..81c47cd 100644
--- a/dist/SmartTransactionsController.js
+++ b/dist/SmartTransactionsController.cjs
@@ -22,10 +22,10 @@ const eth_query_1 = __importDefault(require("@metamask/eth-query"));
const polling_controller_1 = require("@metamask/polling-controller");
const transaction_controller_1 = require("@metamask/transaction-controller");
const bignumber_js_1 = require("bignumber.js");
-const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
-const constants_1 = require("./constants");
-const types_1 = require("./types");
-const utils_1 = require("./utils");
+const cloneDeep_1 = __importDefault(require("lodash/cloneDeep.js"));
+const constants_1 = require("./constants.cjs");
+const types_1 = require("./types.cjs");
+const utils_1 = require("./utils.cjs");
const SECOND = 1000;
exports.DEFAULT_INTERVAL = SECOND * 5;
const ETH_QUERY_ERROR_MSG = '`ethQuery` is not defined on SmartTransactionsController';
@@ -699,4 +699,4 @@ async function _SmartTransactionsController_fetch(request, options) {
newSmartTransactionsForSelectedChain;
});
};
-//# sourceMappingURL=SmartTransactionsController.js.map
\ No newline at end of file
+//# sourceMappingURL=SmartTransactionsController.cjs.map
\ No newline at end of file
diff --git a/dist/SmartTransactionsController.d.ts b/dist/SmartTransactionsController.d.cts
similarity index 93%
rename from dist/SmartTransactionsController.d.ts
rename to dist/SmartTransactionsController.d.cts
index c97b904..e5018a0 100644
--- a/dist/SmartTransactionsController.d.ts
+++ b/dist/SmartTransactionsController.d.cts
@@ -1,12 +1,12 @@
/// <reference types="node" />
-import type { ControllerGetStateAction, ControllerStateChangeEvent, RestrictedControllerMessenger } from '@metamask/base-controller';
-import { type TraceCallback } from '@metamask/controller-utils';
-import type { NetworkClientId, NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetStateAction, NetworkControllerStateChangeEvent } from '@metamask/network-controller';
-import type { TransactionController, TransactionMeta, TransactionParams } from '@metamask/transaction-controller';
-import { MetaMetricsEventCategory, MetaMetricsEventName } from './constants';
-import type { Fees, Hex, IndividualTxFees, SignedCanceledTransaction, SignedTransaction, SmartTransaction, SmartTransactionsStatus, UnsignedTransaction, GetTransactionsOptions, MetaMetricsProps, FeatureFlags, ClientId } from './types';
-import { SmartTransactionStatuses } from './types';
-import { getSmartTransactionMetricsProperties, getSmartTransactionMetricsSensitiveProperties } from './utils';
+import type { ControllerGetStateAction, ControllerStateChangeEvent, RestrictedControllerMessenger } from "@metamask/base-controller";
+import { type TraceCallback } from "@metamask/controller-utils";
+import type { NetworkClientId, NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetStateAction, NetworkControllerStateChangeEvent } from "@metamask/network-controller";
+import type { TransactionController, TransactionMeta, TransactionParams } from "@metamask/transaction-controller";
+import { MetaMetricsEventCategory, MetaMetricsEventName } from "./constants.cjs";
+import type { Fees, Hex, IndividualTxFees, SignedCanceledTransaction, SignedTransaction, SmartTransaction, SmartTransactionsStatus, UnsignedTransaction, GetTransactionsOptions, MetaMetricsProps, FeatureFlags, ClientId } from "./types.cjs";
+import { SmartTransactionStatuses } from "./types.cjs";
+import { getSmartTransactionMetricsProperties, getSmartTransactionMetricsSensitiveProperties } from "./utils.cjs";
export declare const DEFAULT_INTERVAL: number;
/**
* The name of the {@link SmartTransactionsController}
@@ -150,3 +150,4 @@ export default class SmartTransactionsController extends SmartTransactionsContro
}): void;
}
export {};
+//# sourceMappingURL=SmartTransactionsController.d.cts.map
\ No newline at end of file
diff --git a/dist/constants.js b/dist/constants.cjs
similarity index 98%
rename from dist/constants.js
rename to dist/constants.cjs
index f697705..1fa699b 100644
--- a/dist/constants.js
+++ b/dist/constants.cjs
@@ -29,4 +29,4 @@ var SmartTransactionsTraceName;
SmartTransactionsTraceName["CancelTransaction"] = "Smart Transactions: Cancel Transaction";
SmartTransactionsTraceName["FetchLiveness"] = "Smart Transactions: Fetch Liveness";
})(SmartTransactionsTraceName = exports.SmartTransactionsTraceName || (exports.SmartTransactionsTraceName = {}));
-//# sourceMappingURL=constants.js.map
\ No newline at end of file
+//# sourceMappingURL=constants.cjs.map
\ No newline at end of file
diff --git a/dist/constants.d.ts b/dist/constants.d.cts
similarity index 95%
rename from dist/constants.d.ts
rename to dist/constants.d.cts
index bbcdb59..a5ab0b1 100644
--- a/dist/constants.d.ts
+++ b/dist/constants.d.cts
@@ -20,3 +20,4 @@ export declare enum SmartTransactionsTraceName {
FetchLiveness = "Smart Transactions: Fetch Liveness"
}
export {};
+//# sourceMappingURL=constants.d.cts.map
\ No newline at end of file
diff --git a/dist/index.js b/dist/index.cjs
similarity index 89%
rename from dist/index.js
rename to dist/index.cjs
index 0557827..a96b718 100644
--- a/dist/index.js
+++ b/dist/index.cjs
@@ -4,6 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
-var SmartTransactionsController_1 = require("./SmartTransactionsController");
+var SmartTransactionsController_1 = require("./SmartTransactionsController.cjs");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(SmartTransactionsController_1).default; } });
-//# sourceMappingURL=index.js.map
\ No newline at end of file
+//# sourceMappingURL=index.cjs.map
\ No newline at end of file
diff --git a/dist/index.d.ts b/dist/index.d.cts
similarity index 63%
rename from dist/index.d.ts
rename to dist/index.d.cts
index fe57ce2..4af0da0 100644
--- a/dist/index.d.ts
+++ b/dist/index.d.cts
@@ -1,2 +1,3 @@
-export { default } from './SmartTransactionsController';
-export type { SmartTransactionsControllerMessenger, SmartTransactionsControllerState, SmartTransactionsControllerGetStateAction, SmartTransactionsControllerActions, SmartTransactionsControllerStateChangeEvent, SmartTransactionsControllerSmartTransactionEvent, SmartTransactionsControllerSmartTransactionConfirmationDoneEvent, SmartTransactionsControllerEvents, } from './SmartTransactionsController';
+export { default } from "./SmartTransactionsController.cjs";
+export type { SmartTransactionsControllerMessenger, SmartTransactionsControllerState, SmartTransactionsControllerGetStateAction, SmartTransactionsControllerActions, SmartTransactionsControllerStateChangeEvent, SmartTransactionsControllerSmartTransactionEvent, SmartTransactionsControllerSmartTransactionConfirmationDoneEvent, SmartTransactionsControllerEvents, } from "./SmartTransactionsController.cjs";
+//# sourceMappingURL=index.d.cts.map
\ No newline at end of file
diff --git a/dist/types.js b/dist/types.cjs
similarity index 98%
rename from dist/types.js
rename to dist/types.cjs
index 8189474..fcf41ab 100644
--- a/dist/types.js
+++ b/dist/types.cjs
@@ -51,4 +51,4 @@ exports.cancellationReasonToStatusMap = {
[SmartTransactionCancellationReason.INVALID_NONCE]: SmartTransactionStatuses.CANCELLED,
[SmartTransactionCancellationReason.USER_CANCELLED]: SmartTransactionStatuses.CANCELLED_USER_CANCELLED,
};
-//# sourceMappingURL=types.js.map
\ No newline at end of file
+//# sourceMappingURL=types.cjs.map
\ No newline at end of file
diff --git a/dist/types.d.ts b/dist/types.d.cts
similarity index 95%
rename from dist/types.d.ts
rename to dist/types.d.cts
index b477889..a3fcaac 100644
--- a/dist/types.d.ts
+++ b/dist/types.d.cts
@@ -1,5 +1,5 @@
-import type { NetworkClientId } from '@metamask/network-controller';
-import type { TransactionMeta } from '@metamask/transaction-controller';
+import type { NetworkClientId } from "@metamask/network-controller";
+import type { TransactionMeta } from "@metamask/transaction-controller";
/** API */
export declare enum APIType {
'GET_FEES' = 0,
@@ -122,3 +122,4 @@ export declare type FeatureFlags = {
extensionReturnTxHashAsap?: boolean;
};
};
+//# sourceMappingURL=types.d.cts.map
\ No newline at end of file
diff --git a/dist/utils.js b/dist/utils.cjs
similarity index 99%
rename from dist/utils.js
rename to dist/utils.cjs
index 696357d..a7cb4c6 100644
--- a/dist/utils.js
+++ b/dist/utils.cjs
@@ -16,8 +16,8 @@ const lodash_1 = __importDefault(require("lodash"));
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const package_json_1 = __importDefault(require("../package.json"));
-const constants_1 = require("./constants");
-const types_1 = require("./types");
+const constants_1 = require("./constants.cjs");
+const types_1 = require("./types.cjs");
function isSmartTransactionPending(smartTransaction) {
return smartTransaction.status === types_1.SmartTransactionStatuses.PENDING;
}
@@ -268,4 +268,4 @@ const markRegularTransactionAsFailed = ({ smartTransaction, getRegularTransactio
updateTransaction(updatedTransaction, `Smart transaction status: ${status}`);
};
exports.markRegularTransactionAsFailed = markRegularTransactionAsFailed;
-//# sourceMappingURL=utils.js.map
\ No newline at end of file
+//# sourceMappingURL=utils.cjs.map
\ No newline at end of file
diff --git a/dist/utils.d.ts b/dist/utils.d.cts
similarity index 94%
rename from dist/utils.d.ts
rename to dist/utils.d.cts
index 644f6dc..64ce428 100644
--- a/dist/utils.d.ts
+++ b/dist/utils.d.cts
@@ -1,6 +1,6 @@
-import type { TransactionMeta } from '@metamask/transaction-controller';
-import type { SmartTransaction, SmartTransactionsStatus, FeatureFlags } from './types';
-import { APIType, SmartTransactionStatuses, ClientId } from './types';
+import type { TransactionMeta } from "@metamask/transaction-controller";
+import type { SmartTransaction, SmartTransactionsStatus, FeatureFlags } from "./types.cjs";
+import { APIType, SmartTransactionStatuses, ClientId } from "./types.cjs";
export declare function isSmartTransactionPending(smartTransaction: SmartTransaction): boolean;
export declare const isSmartTransactionStatusResolved: (stxStatus: SmartTransactionsStatus | string) => boolean;
export declare function getAPIRequestURL(apiType: APIType, chainId: string): string;
@@ -87,3 +87,4 @@ export declare const markRegularTransactionAsFailed: ({ smartTransaction, getReg
getRegularTransactions: () => TransactionMeta[];
updateTransaction: (transaction: TransactionMeta, note: string) => void;
}) => void;
+//# sourceMappingURL=utils.d.cts.map
\ No newline at end of file |
11fc8a0 to
05ce189
Compare
|
All alerts resolved. Learn more about Socket for GitHub. This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored. Ignoring alerts on:
|
|
@SocketSecurity ignore npm/@arethetypeswrong/core@0.18.2 Shell access is OK; these are CLI tools. |
|
@SocketSecurity ignore npm/mz@2.7.0 Network access is OK; this package wraps Node modules. |
Switch to `ts-bridge` so that we can publish this package in both ES module format and CommonJS module format, and add `exports` to `package.json` to instruct bundlers which format they should choose. (Note that this is a breaking change as consumers will no longer be allowed to import subpaths.) The exports are double-checked with `@arethetypeswrong/cli` to ensure that they work correctly.
|
@cursor Already addressed. |
|
@dan437 Would you mind reviewing this when you get a chance? |
dan437
left a comment
There was a problem hiding this comment.
Looks good. I've also tried Send and Swap transactions in the extension with this branch and they worked.
…20152) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> Bumping `@metamask/smart-transactions-controller`: ```markdown ## [19.2.0] ### Added - Add missing constants and helpers exports ([#538](MetaMask/smart-transactions-controller#538)) - `MetaMetricsEventCategory` - `MetaMetricsEventName` - `getSmartTransactionMetricsProperties` - `getSmartTransactionMetricsSensitiveProperties` ## [19.1.0] ### Added - Add missing exports for types ([#537](MetaMask/smart-transactions-controller#537)) - `Fee` - `Fees` - `IndividualTxFees` - `FeatureFlags` - `SmartTransactionMinedTx` - `SmartTransaction` - `SmartTransactionCancellationReason` - `SmartTransactionStatuses` - `ClientId` ## [19.0.0] ### Added - This package can now be used in ESM environments as well as CommonJS ([#469](MetaMask/smart-transactions-controller#469)) - Add two new controller state metadata properties: `includeInStateLogs` and `usedInUi` ([#531](MetaMask/smart-transactions-controller#531)) ### Changed - **BREAKING:** Disallow subpath exports ([#469](MetaMask/smart-transactions-controller#469)) - **BREAKING:** Upgrade peer dependency `@metamask/transaction-controller` from `^58.0.0` to `^60.4.0` ([#532](MetaMask/smart-transactions-controller#532), [#534](MetaMask/smart-transactions-controller#534)) - **BREAKING:** Remove `getNonceLock`, `confirmExternalTransaction`, `getTransactions`, and `updateTransaction` constructor option in favor of messenger actions ([#534](MetaMask/smart-transactions-controller#534)) - The messenger is now used to access TransactionController; you must add these actions to the SmartTransactionController messenger allowlist: - `TransactionController:getNonceLock` - `TransactionController:confirmExternalTransaction` - `TransactionController:getTransactions` - `TransactionController:updateTransaction` - Upgrade `@metamask/base-controller` from `^7.0.1` to `^8.3.0` ([#529](MetaMask/smart-transactions-controller#529)) - Upgrade `@metamask/polling-controller` from `^12.0.0` to `^14.0.0` ([#529](MetaMask/smart-transactions-controller#529)) ### Removed - **BREAKING:** Remove default export ([#535](MetaMask/smart-transactions-controller#535)) - Use `import { SmartTransactionsController } from '@metamask/smart-transactions-controller'` instead. ``` ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: null ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Upgrades Smart Transactions to ^19.2.1 and Transaction Controller to ^60.4.0, replaces subpath/type imports, migrates Engine/messaging integration, and updates related hooks, views, selectors, and tests. > > - **Dependencies**: > - Bump `@metamask/smart-transactions-controller` to `^19.2.1` and `@metamask/transaction-controller` to `^60.4.0` (lockfile updated). > - **Engine/Controllers**: > - Switch to named exports from `@metamask/smart-transactions-controller`; remove default export usage. > - Migrate STX controller constructor to use messenger actions (`TransactionController:getNonceLock`, `confirmExternalTransaction`, `getTransactions`, `updateTransaction`) instead of direct callbacks; add MetaMetrics constants/util imports from root. > - Transaction Controller init: use `SmartTransactionStatuses` from root; wire STX hooks (single/batch) and metrics/notification handlers; keep pending resubmit disabled. > - **App code updates**: > - Replace all `@metamask/smart-transactions-controller/dist/...` imports with root package exports (types, enums like `SmartTransaction`, `SmartTransactionStatuses`, `Fee/Fees`). > - Update Swaps (QuotesView, useSwapsSmartTransaction), UnifiedTransactionsView, SmartTransactionStatus components/tests, NotificationsManager, selectors, migrations, and smart-transactions utils/hooks to new exports. > - **Tests**: > - Adapt tests to new controller exports and messenger permissions for STX hooks; minor Hex import fixes. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 3c62faf. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Mark Stacey <markjstacey@gmail.com>
…20152) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> Bumping `@metamask/smart-transactions-controller`: ```markdown ## [19.2.0] ### Added - Add missing constants and helpers exports ([#538](MetaMask/smart-transactions-controller#538)) - `MetaMetricsEventCategory` - `MetaMetricsEventName` - `getSmartTransactionMetricsProperties` - `getSmartTransactionMetricsSensitiveProperties` ## [19.1.0] ### Added - Add missing exports for types ([#537](MetaMask/smart-transactions-controller#537)) - `Fee` - `Fees` - `IndividualTxFees` - `FeatureFlags` - `SmartTransactionMinedTx` - `SmartTransaction` - `SmartTransactionCancellationReason` - `SmartTransactionStatuses` - `ClientId` ## [19.0.0] ### Added - This package can now be used in ESM environments as well as CommonJS ([#469](MetaMask/smart-transactions-controller#469)) - Add two new controller state metadata properties: `includeInStateLogs` and `usedInUi` ([#531](MetaMask/smart-transactions-controller#531)) ### Changed - **BREAKING:** Disallow subpath exports ([#469](MetaMask/smart-transactions-controller#469)) - **BREAKING:** Upgrade peer dependency `@metamask/transaction-controller` from `^58.0.0` to `^60.4.0` ([#532](MetaMask/smart-transactions-controller#532), [#534](MetaMask/smart-transactions-controller#534)) - **BREAKING:** Remove `getNonceLock`, `confirmExternalTransaction`, `getTransactions`, and `updateTransaction` constructor option in favor of messenger actions ([#534](MetaMask/smart-transactions-controller#534)) - The messenger is now used to access TransactionController; you must add these actions to the SmartTransactionController messenger allowlist: - `TransactionController:getNonceLock` - `TransactionController:confirmExternalTransaction` - `TransactionController:getTransactions` - `TransactionController:updateTransaction` - Upgrade `@metamask/base-controller` from `^7.0.1` to `^8.3.0` ([#529](MetaMask/smart-transactions-controller#529)) - Upgrade `@metamask/polling-controller` from `^12.0.0` to `^14.0.0` ([#529](MetaMask/smart-transactions-controller#529)) ### Removed - **BREAKING:** Remove default export ([#535](MetaMask/smart-transactions-controller#535)) - Use `import { SmartTransactionsController } from '@metamask/smart-transactions-controller'` instead. ``` ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: null ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Upgrades Smart Transactions to ^19.2.1 and Transaction Controller to ^60.4.0, replaces subpath/type imports, migrates Engine/messaging integration, and updates related hooks, views, selectors, and tests. > > - **Dependencies**: > - Bump `@metamask/smart-transactions-controller` to `^19.2.1` and `@metamask/transaction-controller` to `^60.4.0` (lockfile updated). > - **Engine/Controllers**: > - Switch to named exports from `@metamask/smart-transactions-controller`; remove default export usage. > - Migrate STX controller constructor to use messenger actions (`TransactionController:getNonceLock`, `confirmExternalTransaction`, `getTransactions`, `updateTransaction`) instead of direct callbacks; add MetaMetrics constants/util imports from root. > - Transaction Controller init: use `SmartTransactionStatuses` from root; wire STX hooks (single/batch) and metrics/notification handlers; keep pending resubmit disabled. > - **App code updates**: > - Replace all `@metamask/smart-transactions-controller/dist/...` imports with root package exports (types, enums like `SmartTransaction`, `SmartTransactionStatuses`, `Fee/Fees`). > - Update Swaps (QuotesView, useSwapsSmartTransaction), UnifiedTransactionsView, SmartTransactionStatus components/tests, NotificationsManager, selectors, migrations, and smart-transactions utils/hooks to new exports. > - **Tests**: > - Adapt tests to new controller exports and messenger permissions for STX hooks; minor Hex import fixes. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 3c62faf. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Mark Stacey <markjstacey@gmail.com>
…20152) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> Bumping `@metamask/smart-transactions-controller`: ```markdown ## [19.2.0] ### Added - Add missing constants and helpers exports ([#538](MetaMask/smart-transactions-controller#538)) - `MetaMetricsEventCategory` - `MetaMetricsEventName` - `getSmartTransactionMetricsProperties` - `getSmartTransactionMetricsSensitiveProperties` ## [19.1.0] ### Added - Add missing exports for types ([#537](MetaMask/smart-transactions-controller#537)) - `Fee` - `Fees` - `IndividualTxFees` - `FeatureFlags` - `SmartTransactionMinedTx` - `SmartTransaction` - `SmartTransactionCancellationReason` - `SmartTransactionStatuses` - `ClientId` ## [19.0.0] ### Added - This package can now be used in ESM environments as well as CommonJS ([#469](MetaMask/smart-transactions-controller#469)) - Add two new controller state metadata properties: `includeInStateLogs` and `usedInUi` ([#531](MetaMask/smart-transactions-controller#531)) ### Changed - **BREAKING:** Disallow subpath exports ([#469](MetaMask/smart-transactions-controller#469)) - **BREAKING:** Upgrade peer dependency `@metamask/transaction-controller` from `^58.0.0` to `^60.4.0` ([#532](MetaMask/smart-transactions-controller#532), [#534](MetaMask/smart-transactions-controller#534)) - **BREAKING:** Remove `getNonceLock`, `confirmExternalTransaction`, `getTransactions`, and `updateTransaction` constructor option in favor of messenger actions ([#534](MetaMask/smart-transactions-controller#534)) - The messenger is now used to access TransactionController; you must add these actions to the SmartTransactionController messenger allowlist: - `TransactionController:getNonceLock` - `TransactionController:confirmExternalTransaction` - `TransactionController:getTransactions` - `TransactionController:updateTransaction` - Upgrade `@metamask/base-controller` from `^7.0.1` to `^8.3.0` ([#529](MetaMask/smart-transactions-controller#529)) - Upgrade `@metamask/polling-controller` from `^12.0.0` to `^14.0.0` ([#529](MetaMask/smart-transactions-controller#529)) ### Removed - **BREAKING:** Remove default export ([#535](MetaMask/smart-transactions-controller#535)) - Use `import { SmartTransactionsController } from '@metamask/smart-transactions-controller'` instead. ``` ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: null ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Upgrades Smart Transactions to ^19.2.1 and Transaction Controller to ^60.4.0, replaces subpath/type imports, migrates Engine/messaging integration, and updates related hooks, views, selectors, and tests. > > - **Dependencies**: > - Bump `@metamask/smart-transactions-controller` to `^19.2.1` and `@metamask/transaction-controller` to `^60.4.0` (lockfile updated). > - **Engine/Controllers**: > - Switch to named exports from `@metamask/smart-transactions-controller`; remove default export usage. > - Migrate STX controller constructor to use messenger actions (`TransactionController:getNonceLock`, `confirmExternalTransaction`, `getTransactions`, `updateTransaction`) instead of direct callbacks; add MetaMetrics constants/util imports from root. > - Transaction Controller init: use `SmartTransactionStatuses` from root; wire STX hooks (single/batch) and metrics/notification handlers; keep pending resubmit disabled. > - **App code updates**: > - Replace all `@metamask/smart-transactions-controller/dist/...` imports with root package exports (types, enums like `SmartTransaction`, `SmartTransactionStatuses`, `Fee/Fees`). > - Update Swaps (QuotesView, useSwapsSmartTransaction), UnifiedTransactionsView, SmartTransactionStatus components/tests, NotificationsManager, selectors, migrations, and smart-transactions utils/hooks to new exports. > - **Tests**: > - Adapt tests to new controller exports and messenger permissions for STX hooks; minor Hex import fixes. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 3c62faf. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Mark Stacey <markjstacey@gmail.com>
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> Bumping `@metamask/smart-transactions-controller`: ```markdown ## [19.2.0] ### Added - Add missing constants and helpers exports ([#538](MetaMask/smart-transactions-controller#538)) - `MetaMetricsEventCategory` - `MetaMetricsEventName` - `getSmartTransactionMetricsProperties` - `getSmartTransactionMetricsSensitiveProperties` ## [19.1.0] ### Added - Add missing exports for types ([#537](MetaMask/smart-transactions-controller#537)) - `Fee` - `Fees` - `IndividualTxFees` - `FeatureFlags` - `SmartTransactionMinedTx` - `SmartTransaction` - `SmartTransactionCancellationReason` - `SmartTransactionStatuses` - `ClientId` ## [19.0.0] ### Added - This package can now be used in ESM environments as well as CommonJS ([#469](MetaMask/smart-transactions-controller#469)) - Add two new controller state metadata properties: `includeInStateLogs` and `usedInUi` ([#531](MetaMask/smart-transactions-controller#531)) ### Changed - **BREAKING:** Disallow subpath exports ([#469](MetaMask/smart-transactions-controller#469)) - **BREAKING:** Upgrade peer dependency `@metamask/transaction-controller` from `^58.0.0` to `^60.4.0` ([#532](MetaMask/smart-transactions-controller#532), [#534](MetaMask/smart-transactions-controller#534)) - **BREAKING:** Remove `getNonceLock`, `confirmExternalTransaction`, `getTransactions`, and `updateTransaction` constructor option in favor of messenger actions ([#534](MetaMask/smart-transactions-controller#534)) - The messenger is now used to access TransactionController; you must add these actions to the SmartTransactionController messenger allowlist: - `TransactionController:getNonceLock` - `TransactionController:confirmExternalTransaction` - `TransactionController:getTransactions` - `TransactionController:updateTransaction` - Upgrade `@metamask/base-controller` from `^7.0.1` to `^8.3.0` ([#529](MetaMask/smart-transactions-controller#529)) - Upgrade `@metamask/polling-controller` from `^12.0.0` to `^14.0.0` ([#529](MetaMask/smart-transactions-controller#529)) ### Removed - **BREAKING:** Remove default export ([#535](MetaMask/smart-transactions-controller#535)) - Use `import { SmartTransactionsController } from '@metamask/smart-transactions-controller'` instead. ``` [](https://codespaces.new/MetaMask/metamask-extension/pull/36167?quickstart=1) ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: null ## **Related issues** Fixes: ## **Manual testing steps** 1. Checkout this branch 2. Try submitting a smart transaction ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Upgrades `@metamask/smart-transactions-controller` to v19.2.1, replaces deprecated default/subpath imports, and shifts TransactionController integration to messenger-based actions with updated allowlists and tests. > > - **Smart Transactions Controller upgrade** > - Bump `@metamask/smart-transactions-controller` to `^19.2.1` and align with ESM/no-default export (remove subpath imports like `dist/types`). > - **Messenger-based integration** > - Add TransactionController actions to `SmartTransactionsController` messenger allowlist: `getNonceLock`, `confirmExternalTransaction`, `getTransactions`, `updateTransaction` in `controller-init/messengers/smart-transactions-controller-messenger.ts`. > - Refactor `SmartTransactionsControllerInit` to stop passing `getNonceLock`, `confirmExternalTransaction`, `getTransactions`, `updateTransaction` via constructor; rely on messenger; update constructor typing to use restricted `messenger` directly. > - Remove/adjust related unit tests that asserted constructor-wired functions; keep MetaMetrics wiring tests. > - **Import and type updates** > - Switch all imports to named exports from `@metamask/smart-transactions-controller` (e.g., `SmartTransactionsController`, `SmartTransactionStatuses`, `SmartTransaction`, `ClientId`, `IndividualTxFees`, etc.). > - **Policy updates** > - Update LavaMoat policies to reflect new polling-controller pathing and minor globals; adjust dependencies accordingly. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 74fa4dd. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Mark Stacey <mark.stacey@consensys.net> Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
Switch to
ts-bridgeso that we can publish this package in both ES module format and CommonJS module format, and addexportstopackage.jsonto instruct bundlers which format they should choose. (Note that this is a breaking change as consumers will no longer be allowed to import subpaths.) The exports are double-checked with@arethetypeswrong/clito ensure that they work correctly.Manual Testing
yarn.yarn build.dist/to ensure that it contains all files that are needed to co1nsume this package.yarn test.attwat the end. It should pass.