feat(sdk-coin-eth): add ERC-7984 confidential token non-BitGo recovery - #9411
Open
hrishikeshjain wants to merge 1 commit into
Open
feat(sdk-coin-eth): add ERC-7984 confidential token non-BitGo recovery#9411hrishikeshjain wants to merge 1 commit into
hrishikeshjain wants to merge 1 commit into
Conversation
Contributor
hrishikeshjain
force-pushed
the
CHALO-1115
branch
from
August 4, 2026 11:37
1145e3c to
d2cd114
Compare
Implements the no-proof handle sweep for ERC-7984 tokens using sendMultiSig with ETHER prefix and bytes calldata (not sendMultiSigToken). The recover() override queries confidentialBalanceOf for the encrypted handle and passes it directly as the transfer amount — no Zama relayer needed for recovery. - Add encryptedHandle option to RecoverOptions for manual override - Add queryConfidentialBalance() for on-chain eth_call - Override setGasLimit() with 800k default (validated ~530k on Hoodi) - Guard against TSS recovery (not yet supported) - Add unit tests for recover, queryConfidentialBalance, setGasLimit TICKET: CHALO-1115 Co-authored-by: Cursor <cursoragent@cursor.com>
hrishikeshjain
force-pushed
the
CHALO-1115
branch
from
August 4, 2026 11:38
d2cd114 to
178bb27
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
sendMultiSigwithETHERprefix (notsendMultiSigToken/ERC20prefix)queryConfidentialBalance()to query encrypted balance handles viaeth_callon-chainsetGasLimit()with 800k default (validated ~530k actual usage on Hoodi testnet across 3 successful test transactions)Key design decisions
confidentialBalanceOfreturns non-zero handles even for zero balances (encrypted domain)sendMultiSignotsendMultiSigTokenETHERprefix with bytes calldata, notERC20prefix with token addressFiles changed
modules/abstract-eth/src/abstractEthLikeNewCoins.ts— AddencryptedHandleoption toRecoverOptionsmodules/sdk-coin-eth/src/erc7984Token.ts— Overriderecover(), addqueryConfidentialBalance(), overridesetGasLimit()modules/sdk-coin-eth/test/unit/erc7984Token.ts— Unit tests for recovery, balance query, and gas limitTest plan
recover()signed, unsigned sweep, and KRS pathsqueryConfidentialBalance()success and error casessetGasLimit()default and overrideTICKET: CHALO-1115
Made with Cursor