Skip to content

feat: Enable Across support for perps deposits#8334

Merged
pedronfigueiredo merged 2 commits intomainfrom
pnf/allow-usdcperps-deposit
Apr 7, 2026
Merged

feat: Enable Across support for perps deposits#8334
pedronfigueiredo merged 2 commits intomainfrom
pnf/allow-usdcperps-deposit

Conversation

@pedronfigueiredo
Copy link
Copy Markdown
Contributor

@pedronfigueiredo pedronfigueiredo commented Mar 30, 2026

Explanation

Re-enable Across for perps deposits by allowing the specific quote-time perpsDeposit route and normalizing Arbitrum USDC targets to Across’s new HyperCore USDC-PERPS direct-deposit token. Keep the change limited so only the supported perps deposit flow bypasses Across’s same-chain rejection and same-token quote skipping.

At quote-build time, transaction pay still represents the required asset as Arbitrum USDC, so Across sees sourceChainId === targetChainId and “same token” even though the real destination we need to quote is HyperCore 1337 + 0x2100...0000. If we do not bypass those checks for this narrow case, the request is filtered out before we ever rewrite it into the actual Across direct-deposit route.

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

Medium Risk
Changes Across strategy routing and quote normalization for perpsDeposit, including chain/token rewriting and decimal conversion, which could impact deposit quoting/execution if the detection logic is wrong. Scope is limited to a narrow perps-deposit shape and is covered by new unit tests.

Overview
Re-enables Across quoting for a narrow perpsDeposit flow by detecting supported Arbitrum USDC perps deposits and rewriting the quote request into Across’s HyperCore USDC-PERPS direct-deposit route (chain/token swap plus 6→8 decimal targetAmountMinimum scaling).

Updates Across handling to bypass same-chain rejection and “same token” quote skipping for this specific case, including returning a simple destination (no actions, recipient=from) for supported perps deposits. Adds focused tests and a changelog entry for the new Across perps deposit support.

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

@pedronfigueiredo pedronfigueiredo self-assigned this Mar 30, 2026
@pedronfigueiredo pedronfigueiredo requested a review from a team as a code owner March 30, 2026 13:31
@pedronfigueiredo pedronfigueiredo requested a review from a team as a code owner March 30, 2026 13:31
@pedronfigueiredo pedronfigueiredo force-pushed the pnf/allow-usdcperps-deposit branch from 1261941 to 677ae2e Compare March 30, 2026 13:33
@pedronfigueiredo pedronfigueiredo changed the title feat: Reenable limited Across support for perps deposits feat: Enable Across support for perps deposits Mar 30, 2026
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.


- Add route-based `confirmations_pay` strategy resolution ([#8282](https://github.com/MetaMask/core/pull/8282))

### Fixed
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't it be more suitable as an Added ?

vinistevam
vinistevam previously approved these changes Mar 31, 2026
@pedronfigueiredo pedronfigueiredo added this pull request to the merge queue Apr 7, 2026
Merged via the queue into main with commit 894c96c Apr 7, 2026
341 checks passed
@pedronfigueiredo pedronfigueiredo deleted the pnf/allow-usdcperps-deposit branch April 7, 2026 11:12
micaelae pushed a commit that referenced this pull request Apr 7, 2026
## Explanation

<!--
Thanks for your contribution! Take a moment to answer these questions so
that reviewers have the information they need to properly understand
your changes:

* What is the current state of things and why does it need to change?
* What is the solution your changes offer and how does it work?
* Are there any changes whose purpose might not obvious to those
unfamiliar with the domain?
* If your primary goal was to update one package but you found you had
to update another one along the way, why did you do so?
* If you had to upgrade a dependency, why did you do so?
-->

Re-enable Across for perps deposits by allowing the specific quote-time
perpsDeposit route and normalizing Arbitrum USDC targets to Across’s new
HyperCore USDC-PERPS direct-deposit token. Keep the change limited so
only the supported perps deposit flow bypasses Across’s same-chain
rejection and same-token quote skipping.

At quote-build time, transaction pay still represents the required asset
as Arbitrum USDC, so Across sees sourceChainId === targetChainId and
“same token” even though the real destination we need to quote is
HyperCore 1337 + 0x2100...0000. If we do not bypass those checks for
this narrow case, the request is filtered out before we ever rewrite it
into the actual Across direct-deposit route.

## References

<!--
Are there any issues that this pull request is tied to?
Are there other links that reviewers should consult to understand these
changes better?
Are there client or consumer pull requests to adopt any breaking
changes?

For example:

* Fixes #12345
* Related to #67890
-->

## Checklist

- [ ] I've updated the test suite for new or updated code as appropriate
- [ ] I've updated documentation (JSDoc, Markdown, etc.) for new or
updated code as appropriate
- [ ] I've communicated my changes to consumers by [updating changelogs
for packages I've
changed](https://github.com/MetaMask/core/tree/main/docs/processes/updating-changelogs.md)
- [ ] I've introduced [breaking
changes](https://github.com/MetaMask/core/tree/main/docs/processes/breaking-changes.md)
in this PR and have prepared draft pull requests for clients and
consumer packages to resolve them

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Changes Across strategy routing and quote normalization for
`perpsDeposit`, including chain/token rewriting and decimal conversion,
which could impact deposit quoting/execution if the detection logic is
wrong. Scope is limited to a narrow perps-deposit shape and is covered
by new unit tests.
> 
> **Overview**
> Re-enables **Across quoting for a narrow `perpsDeposit` flow** by
detecting supported Arbitrum USDC perps deposits and rewriting the quote
request into Across’s HyperCore USDC-PERPS direct-deposit route
(chain/token swap plus 6→8 decimal `targetAmountMinimum` scaling).
> 
> Updates Across handling to bypass same-chain rejection and “same
token” quote skipping for this specific case, including returning a
simple destination (no actions, recipient=`from`) for supported perps
deposits. Adds focused tests and a changelog entry for the new Across
perps deposit support.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
99a8585. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants