Skip to content

feat(bridge-controller): expose metabridge discount type#9305

Merged
bfullam merged 3 commits into
mainfrom
swaps-4675-expose-discount-type
Jun 30, 2026
Merged

feat(bridge-controller): expose metabridge discount type#9305
bfullam merged 3 commits into
mainfrom
swaps-4675-expose-discount-type

Conversation

@bfullam

@bfullam bfullam commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Expose known metabridge discount type values from the bridge-controller package.
  • Allow quote.feeData.metabridge.discountType through quote validation as an optional nullable string so clients can handle future discount types without losing quotes.
  • Add validator coverage for absent, null, known, future, and invalid discount type values plus full quote validation.

Test plan

  • yarn workspace @metamask/bridge-controller test --runInBand --testPathPattern=src/utils/validators.test.ts --collectCoverage=false
  • git diff --check

Note

Low Risk
Additive optional schema field and public enum export; no changes to quote handling logic beyond accepting an extra fee field.

Overview
Adds a DiscountType enum (vip, promo, dao) and exports it from @metamask/bridge-controller so clients can recognize known MetaBridge discount labels.

FeeDataSchema now accepts an optional, nullable discountType string on metabridge fee entries (quote.feeData.metabridge.discountType). Validation stays permissive—unknown future string values still pass—so quotes are not dropped when the API adds new discount types. FeeData types pick up the field via the existing schema inference.

Validator tests cover absent/null/known/future discountType values, rejection of non-strings, and full validateQuoteResponseV1 with a promo discount. Changelog updated under Unreleased.

Reviewed by Cursor Bugbot for commit 8373c05. Bugbot is set up for automated code reviews on this repo. Configure here.

@bfullam bfullam requested a review from a team as a code owner June 29, 2026 15:17
@bfullam bfullam temporarily deployed to default-branch June 29, 2026 15:17 — with GitHub Actions Inactive
@bfullam bfullam requested a review from a team as a code owner June 29, 2026 15:24
@bfullam

bfullam commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

@metamaskbot publish-preview

@github-actions

Copy link
Copy Markdown
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@7.5.3-preview-9291f33a8
@metamask-previews/accounts-controller@39.0.3-preview-9291f33a8
@metamask-previews/address-book-controller@7.1.2-preview-9291f33a8
@metamask-previews/ai-controllers@0.7.0-preview-9291f33a8
@metamask-previews/analytics-controller@1.2.1-preview-9291f33a8
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-9291f33a8
@metamask-previews/announcement-controller@8.1.0-preview-9291f33a8
@metamask-previews/app-metadata-controller@2.0.1-preview-9291f33a8
@metamask-previews/approval-controller@9.0.2-preview-9291f33a8
@metamask-previews/assets-controller@9.1.0-preview-9291f33a8
@metamask-previews/assets-controllers@109.2.2-preview-9291f33a8
@metamask-previews/authenticated-user-storage@2.1.0-preview-9291f33a8
@metamask-previews/base-controller@9.1.0-preview-9291f33a8
@metamask-previews/base-data-service@0.1.3-preview-9291f33a8
@metamask-previews/bitcoin-regtest-up@0.0.0-preview-9291f33a8
@metamask-previews/bridge-controller@77.1.0-preview-9291f33a8
@metamask-previews/bridge-status-controller@73.1.0-preview-9291f33a8
@metamask-previews/build-utils@3.0.4-preview-9291f33a8
@metamask-previews/chain-agnostic-permission@1.6.2-preview-9291f33a8
@metamask-previews/chomp-api-service@3.1.0-preview-9291f33a8
@metamask-previews/claims-controller@0.5.3-preview-9291f33a8
@metamask-previews/client-controller@1.0.1-preview-9291f33a8
@metamask-previews/compliance-controller@2.1.0-preview-9291f33a8
@metamask-previews/composable-controller@12.0.1-preview-9291f33a8
@metamask-previews/config-registry-controller@0.4.1-preview-9291f33a8
@metamask-previews/connectivity-controller@0.2.0-preview-9291f33a8
@metamask-previews/controller-utils@12.3.0-preview-9291f33a8
@metamask-previews/core-backend@6.3.3-preview-9291f33a8
@metamask-previews/delegation-controller@3.0.2-preview-9291f33a8
@metamask-previews/earn-controller@12.2.1-preview-9291f33a8
@metamask-previews/eip-5792-middleware@3.0.4-preview-9291f33a8
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.1-preview-9291f33a8
@metamask-previews/eip1193-permission-middleware@2.0.1-preview-9291f33a8
@metamask-previews/ens-controller@19.1.4-preview-9291f33a8
@metamask-previews/eth-block-tracker@15.0.1-preview-9291f33a8
@metamask-previews/eth-json-rpc-middleware@23.1.3-preview-9291f33a8
@metamask-previews/eth-json-rpc-provider@6.0.1-preview-9291f33a8
@metamask-previews/foundryup@1.0.1-preview-9291f33a8
@metamask-previews/gas-fee-controller@26.2.3-preview-9291f33a8
@metamask-previews/gator-permissions-controller@4.2.1-preview-9291f33a8
@metamask-previews/geolocation-controller@0.1.3-preview-9291f33a8
@metamask-previews/java-tron-up@0.0.0-preview-9291f33a8
@metamask-previews/json-rpc-engine@10.5.0-preview-9291f33a8
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-9291f33a8
@metamask-previews/keyring-controller@27.1.0-preview-9291f33a8
@metamask-previews/local-node-utils@0.0.0-preview-9291f33a8
@metamask-previews/logging-controller@8.0.2-preview-9291f33a8
@metamask-previews/message-manager@14.1.2-preview-9291f33a8
@metamask-previews/messenger@1.2.0-preview-9291f33a8
@metamask-previews/messenger-cli@0.2.0-preview-9291f33a8
@metamask-previews/money-account-balance-service@2.1.1-preview-9291f33a8
@metamask-previews/money-account-controller@0.3.3-preview-9291f33a8
@metamask-previews/money-account-upgrade-controller@2.1.0-preview-9291f33a8
@metamask-previews/multichain-account-service@11.1.0-preview-9291f33a8
@metamask-previews/multichain-api-middleware@3.1.5-preview-9291f33a8
@metamask-previews/multichain-network-controller@3.2.0-preview-9291f33a8
@metamask-previews/multichain-transactions-controller@7.1.1-preview-9291f33a8
@metamask-previews/name-controller@9.1.2-preview-9291f33a8
@metamask-previews/network-controller@33.0.0-preview-9291f33a8
@metamask-previews/network-enablement-controller@5.4.0-preview-9291f33a8
@metamask-previews/notification-services-controller@24.2.0-preview-9291f33a8
@metamask-previews/passkey-controller@2.0.1-preview-9291f33a8
@metamask-previews/permission-controller@13.1.1-preview-9291f33a8
@metamask-previews/permission-log-controller@5.1.0-preview-9291f33a8
@metamask-previews/perps-controller@9.0.0-preview-9291f33a8
@metamask-previews/phishing-controller@17.2.0-preview-9291f33a8
@metamask-previews/polling-controller@16.0.7-preview-9291f33a8
@metamask-previews/preferences-controller@23.1.0-preview-9291f33a8
@metamask-previews/profile-metrics-controller@4.0.0-preview-9291f33a8
@metamask-previews/profile-sync-controller@28.2.0-preview-9291f33a8
@metamask-previews/ramps-controller@15.0.0-preview-9291f33a8
@metamask-previews/rate-limit-controller@7.0.1-preview-9291f33a8
@metamask-previews/react-data-query@0.2.1-preview-9291f33a8
@metamask-previews/remote-feature-flag-controller@4.2.2-preview-9291f33a8
@metamask-previews/sample-controllers@5.0.2-preview-9291f33a8
@metamask-previews/seedless-onboarding-controller@10.0.3-preview-9291f33a8
@metamask-previews/selected-network-controller@26.1.4-preview-9291f33a8
@metamask-previews/shield-controller@5.1.2-preview-9291f33a8
@metamask-previews/signature-controller@39.2.6-preview-9291f33a8
@metamask-previews/smart-transactions-controller@24.2.3-preview-9291f33a8
@metamask-previews/snap-account-service@1.0.0-preview-9291f33a8
@metamask-previews/social-controllers@2.3.1-preview-9291f33a8
@metamask-previews/solana-test-validator-up@0.0.0-preview-9291f33a8
@metamask-previews/stellar-quickstart-up@0.0.0-preview-9291f33a8
@metamask-previews/storage-service@1.0.2-preview-9291f33a8
@metamask-previews/subscription-controller@6.2.0-preview-9291f33a8
@metamask-previews/transaction-controller@68.2.0-preview-9291f33a8
@metamask-previews/transaction-pay-controller@23.17.1-preview-9291f33a8
@metamask-previews/user-operation-controller@41.2.5-preview-9291f33a8
@metamask-previews/wallet@5.0.0-preview-9291f33a8
@metamask-previews/wallet-cli@0.0.0-preview-9291f33a8

…count-type

# Conflicts:
#	packages/bridge-controller/CHANGELOG.md
@bfullam bfullam enabled auto-merge June 30, 2026 14:56
@bfullam bfullam added this pull request to the merge queue Jun 30, 2026
Merged via the queue into main with commit 23ba332 Jun 30, 2026
400 checks passed
@bfullam bfullam deleted the swaps-4675-expose-discount-type branch June 30, 2026 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants