From 9a460d68e209402b2e331747ad917bc8bd8fed7c Mon Sep 17 00:00:00 2001 From: Pedro Figueiredo Date: Thu, 14 May 2026 11:29:14 +0100 Subject: [PATCH 1/6] Move gasless flag to extended pay config --- packages/transaction-pay-controller/CHANGELOG.md | 2 +- .../src/utils/feature-flags.test.ts | 12 ++++++------ .../src/utils/feature-flags.ts | 15 +++++++++++---- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/packages/transaction-pay-controller/CHANGELOG.md b/packages/transaction-pay-controller/CHANGELOG.md index 6013645c86..84596e3da6 100644 --- a/packages/transaction-pay-controller/CHANGELOG.md +++ b/packages/transaction-pay-controller/CHANGELOG.md @@ -13,7 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Rename Relay gasless execution feature flag from `gaslessEnabled` to `isGaslessEnabled` ([#8801](https://github.com/MetaMask/core/pull/8801)) +- Move the Relay gasless execution feature flag to `confirmations_pay_extended.payStrategies.relay.gaslessEnabled` ([#8801](https://github.com/MetaMask/core/pull/8801)) ## [22.4.0] diff --git a/packages/transaction-pay-controller/src/utils/feature-flags.test.ts b/packages/transaction-pay-controller/src/utils/feature-flags.test.ts index 79540a25ab..b11a84ac28 100644 --- a/packages/transaction-pay-controller/src/utils/feature-flags.test.ts +++ b/packages/transaction-pay-controller/src/utils/feature-flags.test.ts @@ -464,14 +464,14 @@ describe('Feature Flags Utils', () => { expect(isRelayExecuteEnabled(messenger)).toBe(false); }); - it('returns true when isGaslessEnabled is true', () => { + it('returns true when gaslessEnabled is true', () => { getRemoteFeatureFlagControllerStateMock.mockReturnValue({ ...getDefaultRemoteFeatureFlagControllerState(), remoteFeatureFlags: { - confirmations_pay: { + confirmations_pay_extended: { payStrategies: { relay: { - isGaslessEnabled: true, + gaslessEnabled: true, }, }, }, @@ -481,14 +481,14 @@ describe('Feature Flags Utils', () => { expect(isRelayExecuteEnabled(messenger)).toBe(true); }); - it('returns false when isGaslessEnabled is false', () => { + it('returns false when gaslessEnabled is false', () => { getRemoteFeatureFlagControllerStateMock.mockReturnValue({ ...getDefaultRemoteFeatureFlagControllerState(), remoteFeatureFlags: { - confirmations_pay: { + confirmations_pay_extended: { payStrategies: { relay: { - isGaslessEnabled: false, + gaslessEnabled: false, }, }, }, diff --git a/packages/transaction-pay-controller/src/utils/feature-flags.ts b/packages/transaction-pay-controller/src/utils/feature-flags.ts index 4f837f24c1..ded5bcac2c 100644 --- a/packages/transaction-pay-controller/src/utils/feature-flags.ts +++ b/packages/transaction-pay-controller/src/utils/feature-flags.ts @@ -133,13 +133,20 @@ export type PayStrategiesConfigRaw = { across?: AcrossConfigRaw; relay?: { enabled?: boolean; - isGaslessEnabled?: boolean; originGasOverhead?: string; pollingInterval?: number; pollingTimeout?: number; }; }; +type FeatureFlagsExtendedRaw = { + payStrategies?: { + relay?: { + gaslessEnabled?: boolean; + }; + }; +}; + export type PayStrategiesConfig = { across: AcrossConfig; relay: { @@ -493,10 +500,10 @@ export function isRelayExecuteEnabled( ): boolean { const state = messenger.call('RemoteFeatureFlagController:getState'); const featureFlags = - (state.remoteFeatureFlags?.confirmations_pay as - | FeatureFlagsRaw + (state.remoteFeatureFlags?.confirmations_pay_extended as + | FeatureFlagsExtendedRaw | undefined) ?? {}; - return featureFlags.payStrategies?.relay?.isGaslessEnabled ?? false; + return featureFlags.payStrategies?.relay?.gaslessEnabled ?? false; } /** From dbf18b54b117a6f987b7218e8dbbedfcd786a49c Mon Sep 17 00:00:00 2001 From: Pedro Figueiredo Date: Thu, 14 May 2026 11:30:59 +0100 Subject: [PATCH 2/6] Update changelog for extended gasless flag PR --- packages/transaction-pay-controller/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/transaction-pay-controller/CHANGELOG.md b/packages/transaction-pay-controller/CHANGELOG.md index 84596e3da6..602693eafb 100644 --- a/packages/transaction-pay-controller/CHANGELOG.md +++ b/packages/transaction-pay-controller/CHANGELOG.md @@ -13,7 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Move the Relay gasless execution feature flag to `confirmations_pay_extended.payStrategies.relay.gaslessEnabled` ([#8801](https://github.com/MetaMask/core/pull/8801)) +- Move the Relay gasless execution feature flag to `confirmations_pay_extended.payStrategies.relay.gaslessEnabled` ([#8810](https://github.com/MetaMask/core/pull/8810)) ## [22.4.0] From 4c35b77d38317d66cb6bcb6a51ba17309ecc253e Mon Sep 17 00:00:00 2001 From: Pedro Figueiredo Date: Thu, 14 May 2026 11:41:57 +0100 Subject: [PATCH 3/6] Use shared pay feature flag shape --- packages/transaction-pay-controller/CHANGELOG.md | 1 + .../src/utils/feature-flags.ts | 11 ++--------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/packages/transaction-pay-controller/CHANGELOG.md b/packages/transaction-pay-controller/CHANGELOG.md index 602693eafb..6489328b00 100644 --- a/packages/transaction-pay-controller/CHANGELOG.md +++ b/packages/transaction-pay-controller/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Rename Relay gasless execution feature flag from `gaslessEnabled` to `isGaslessEnabled` ([#8801](https://github.com/MetaMask/core/pull/8801)) - Move the Relay gasless execution feature flag to `confirmations_pay_extended.payStrategies.relay.gaslessEnabled` ([#8810](https://github.com/MetaMask/core/pull/8810)) ## [22.4.0] diff --git a/packages/transaction-pay-controller/src/utils/feature-flags.ts b/packages/transaction-pay-controller/src/utils/feature-flags.ts index ded5bcac2c..653c2081b4 100644 --- a/packages/transaction-pay-controller/src/utils/feature-flags.ts +++ b/packages/transaction-pay-controller/src/utils/feature-flags.ts @@ -133,20 +133,13 @@ export type PayStrategiesConfigRaw = { across?: AcrossConfigRaw; relay?: { enabled?: boolean; + gaslessEnabled?: boolean; originGasOverhead?: string; pollingInterval?: number; pollingTimeout?: number; }; }; -type FeatureFlagsExtendedRaw = { - payStrategies?: { - relay?: { - gaslessEnabled?: boolean; - }; - }; -}; - export type PayStrategiesConfig = { across: AcrossConfig; relay: { @@ -501,7 +494,7 @@ export function isRelayExecuteEnabled( const state = messenger.call('RemoteFeatureFlagController:getState'); const featureFlags = (state.remoteFeatureFlags?.confirmations_pay_extended as - | FeatureFlagsExtendedRaw + | FeatureFlagsRaw | undefined) ?? {}; return featureFlags.payStrategies?.relay?.gaslessEnabled ?? false; } From 794f1766e7e204c39f616fc2e977761a5a67d4dd Mon Sep 17 00:00:00 2001 From: Pedro Figueiredo Date: Thu, 14 May 2026 12:20:05 +0100 Subject: [PATCH 4/6] Clarify extended pay feature flag shape --- .../src/utils/feature-flags.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/transaction-pay-controller/src/utils/feature-flags.ts b/packages/transaction-pay-controller/src/utils/feature-flags.ts index 653c2081b4..ab737bd0ca 100644 --- a/packages/transaction-pay-controller/src/utils/feature-flags.ts +++ b/packages/transaction-pay-controller/src/utils/feature-flags.ts @@ -133,13 +133,23 @@ export type PayStrategiesConfigRaw = { across?: AcrossConfigRaw; relay?: { enabled?: boolean; - gaslessEnabled?: boolean; + isGaslessEnabled?: boolean; originGasOverhead?: string; pollingInterval?: number; pollingTimeout?: number; }; }; +type FeatureFlagsExtendedRaw = { + payStrategies?: { + relay?: { + enabled?: boolean; + gaslessEnabled?: boolean; + }; + }; + strategyOrder?: string[]; +}; + export type PayStrategiesConfig = { across: AcrossConfig; relay: { @@ -494,7 +504,7 @@ export function isRelayExecuteEnabled( const state = messenger.call('RemoteFeatureFlagController:getState'); const featureFlags = (state.remoteFeatureFlags?.confirmations_pay_extended as - | FeatureFlagsRaw + | FeatureFlagsExtendedRaw | undefined) ?? {}; return featureFlags.payStrategies?.relay?.gaslessEnabled ?? false; } From 5f72415eb45d7bad21059a8b965bb0dc29e5b54b Mon Sep 17 00:00:00 2001 From: Pedro Figueiredo Date: Thu, 14 May 2026 14:04:42 +0100 Subject: [PATCH 5/6] Narrow extended gasless flag type --- packages/transaction-pay-controller/src/utils/feature-flags.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/transaction-pay-controller/src/utils/feature-flags.ts b/packages/transaction-pay-controller/src/utils/feature-flags.ts index ab737bd0ca..9a289844f8 100644 --- a/packages/transaction-pay-controller/src/utils/feature-flags.ts +++ b/packages/transaction-pay-controller/src/utils/feature-flags.ts @@ -143,11 +143,9 @@ export type PayStrategiesConfigRaw = { type FeatureFlagsExtendedRaw = { payStrategies?: { relay?: { - enabled?: boolean; gaslessEnabled?: boolean; }; }; - strategyOrder?: string[]; }; export type PayStrategiesConfig = { From 9b57908519602e11dec32f1bc0c3f8cc6fac7908 Mon Sep 17 00:00:00 2001 From: Pedro Figueiredo Date: Thu, 14 May 2026 14:13:44 +0100 Subject: [PATCH 6/6] Remove stale gasless flag type --- packages/transaction-pay-controller/src/utils/feature-flags.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/transaction-pay-controller/src/utils/feature-flags.ts b/packages/transaction-pay-controller/src/utils/feature-flags.ts index 9a289844f8..ded5bcac2c 100644 --- a/packages/transaction-pay-controller/src/utils/feature-flags.ts +++ b/packages/transaction-pay-controller/src/utils/feature-flags.ts @@ -133,7 +133,6 @@ export type PayStrategiesConfigRaw = { across?: AcrossConfigRaw; relay?: { enabled?: boolean; - isGaslessEnabled?: boolean; originGasOverhead?: string; pollingInterval?: number; pollingTimeout?: number;