Skip to content

fix(binanceFinalizer): Handle non-standard USDC symbol for ZKUSDCE - #3263

Merged
nicholaspai merged 9 commits into
masterfrom
zksync-usdc-withdrawal
Apr 20, 2026
Merged

fix(binanceFinalizer): Handle non-standard USDC symbol for ZKUSDCE#3263
nicholaspai merged 9 commits into
masterfrom
zksync-usdc-withdrawal

Conversation

@nicholaspai

Copy link
Copy Markdown
Member

ZkSync deposited USDC does not use USDC as the internal symbol

nicholaspai and others added 5 commits April 17, 2026 12:23
ZkSync deposited USDC does not use USDC as the internal symbol
This is to include the new Arweave gateway logic.

---------

Signed-off-by: bennett <bennett@umaproject.org>
The TVM RPC interface is extremely constrained vs. other EVM 
implementations. Many features don't work, notably event subscriptions.
Trying to support this within the existing EVM listener was proving
invasive, so spin the TVM-specific implementation out separately. This
allows risk-free iterations to mature the code. We still hold out hope
that it might one day be unified with the EVM implementation.

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
withdrawMax is typically a very large number (e.g. 200mil for USDT) so
converting it to a source token involves finding the price at which it
would execute in the orderbook which triggers errors complaining that
the whole orderbook has been traversed.

I believe keeping the withdrawMax check in this code is useful so its
safer to convert the `amountToTransfer`, which is capped by our own
`maxAmountToTransfer` config variable, to destination token precision.
This is an equivalent conversion it just should never trigger this same
error related to insufficient orderbook depth
@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

const _arweaveGateways = isDefined(ARWEAVE_GATEWAYS) ? JSON.parse(ARWEAVE_GATEWAYS) : undefined;
assert(
!isDefined(_arweaveGateways) ||
(Array.isArray(_arweaveGateways) &&
_arweaveGateways.every((_arweaveGateway) => ArweaveGatewayConfigSS.is(_arweaveGateway))),

P2 Badge Keep backward-compatible Arweave gateway env parsing

This change only reads ARWEAVE_GATEWAYS, so existing deployments still configured with the previous ARWEAVE_GATEWAY variable will silently lose their custom Arweave endpoint settings after upgrade. In environments that rely on non-default gateways (private/public allowlisted hosts, regional routing, etc.), this can break bundle read/write behavior at runtime even though the old env var is still present. Please preserve a migration fallback by accepting both env names (legacy + new) when building CommonConfig.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

pxrl
pxrl previously approved these changes Apr 17, 2026
bmzig
bmzig previously approved these changes Apr 17, 2026
@nicholaspai
nicholaspai dismissed stale reviews from bmzig and pxrl via 8912e31 April 18, 2026 15:52
@nicholaspai
nicholaspai merged commit ba50514 into master Apr 20, 2026
4 checks passed
@nicholaspai
nicholaspai deleted the zksync-usdc-withdrawal branch April 20, 2026 13:38
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.

3 participants