diff --git a/modules/statics/src/base.ts b/modules/statics/src/base.ts index 796868f538..fbb9b6a7e6 100644 --- a/modules/statics/src/base.ts +++ b/modules/statics/src/base.ts @@ -3858,7 +3858,7 @@ export enum UnderlyingAsset { 'eth:ctkn' = 'eth:ctkn', 'eth:cusdt' = 'eth:cusdt', // ERC-7984 confidential tokens (Zama fhEVM - testnet / hteth) - 'hteth:ctkn' = 'hteth:ctkn', + 'hteth:ctest1' = 'hteth:ctest1', 'hteth:cusdt' = 'hteth:cusdt', 'eth:mony' = 'eth:mony', 'eth:architectgvi' = 'eth:architectgvi', diff --git a/modules/statics/src/coins/erc7984Tokens.ts b/modules/statics/src/coins/erc7984Tokens.ts index 8a8e3bdadb..2fd5356734 100644 --- a/modules/statics/src/coins/erc7984Tokens.ts +++ b/modules/statics/src/coins/erc7984Tokens.ts @@ -9,9 +9,11 @@ import { UnderlyingAsset } from '../base'; * decryption via the Zama Gateway before they can be displayed. * * Mainnet contract addresses are TBD pending Zama fhEVM mainnet launch. - * Testnet tokens (hteth:*) are deployed on the BitGo-supported ETH testnet (Hoodi). + * Testnet tokens (hteth:*) are deployed on Hoodi using Zama's cleartext FHE stack. + * Hoodi ACL: 0x6D3FAf6f86e1fF9F3B0831Dda920AbA1cBd5bd68 (Networks.test.hoodi.zamaAclContractAddress) + * Hoodi RPC: https://rpc.hoodi.ethpandaops.io (chain ID 560048) * - * Sandbox development contracts (Sepolia): + * Sandbox development contracts (Sepolia, real FHE stack): * CTKN: 0x94167129172A35ab093B44b8b96213DDbc3cD387 * cUSDT: 0x4E7B06D78965594eB5EF5414c357ca21E1554491 */ @@ -34,22 +36,21 @@ export const erc7984Tokens = [ UnderlyingAsset['eth:cusdt'] ), - // Testnet tokens (hteth / Hoodi) - // Note: sandbox development contracts are on Ethereum Sepolia; deploy to Hoodi for BitGo testnet support + // Testnet tokens (hteth / Hoodi) — Zama cleartext FHE stack (chain ID 560048) terc7984( 'f47ac10b-58cc-4372-a567-0e02b2c3d481', - 'hteth:ctkn', - 'Confidential Test Token', + 'hteth:ctest1', + 'Confidential Token Test 1', 6, - '0x0000000000000000000000000000000000000000', // TODO: deploy to Hoodi and update address (Sepolia dev: 0x94167129172A35ab093B44b8b96213DDbc3cD387) - UnderlyingAsset['hteth:ctkn'] + '0x7b1d59bbcd291daa59cb6c8c5bc04de1afc4aba1', + UnderlyingAsset['hteth:ctest1'] ), terc7984( 'f47ac10b-58cc-4372-a567-0e02b2c3d482', 'hteth:cusdt', 'Confidential USDT', 6, - '0x0000000000000000000000000000000000000000', // TODO: deploy to Hoodi and update address (Sepolia dev: 0x4E7B06D78965594eB5EF5414c357ca21E1554491) + '0x2debbe0487ef921df4457f9e36ed05be2df1ac75', UnderlyingAsset['hteth:cusdt'] ), ]; diff --git a/modules/statics/src/networks.ts b/modules/statics/src/networks.ts index 57b0e7139f..fef17e5ffe 100644 --- a/modules/statics/src/networks.ts +++ b/modules/statics/src/networks.ts @@ -177,6 +177,8 @@ export interface EthereumNetwork extends AccountNetwork { readonly walletV4ImplementationAddress?: string; readonly nativeCoinOperationHashPrefix?: string; readonly tokenOperationHashPrefix?: string; + // Zama fhEVM ACL contract address — required for ERC-7984 confidential token delegation + readonly zamaAclContractAddress?: string; } export interface TronNetwork extends AccountNetwork { @@ -824,6 +826,8 @@ class Hoodi extends Testnet implements EthereumNetwork { walletV4ImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2'; nativeCoinOperationHashPrefix = 'ETHER'; tokenOperationHashPrefix = 'ERC20'; + // https://github.com/zama-ai/sdk/blob/prerelease/packages/sdk/src/chains/configs.ts#L52 + zamaAclContractAddress = '0x6d3faf6f86e1ff9f3b0831dda920aba1cbd5bd68'; } class EthereumClassic extends Mainnet implements EthereumNetwork { diff --git a/modules/statics/test/unit/resources/amsTokenConfig.ts b/modules/statics/test/unit/resources/amsTokenConfig.ts index 709ed3317d..5f9bfcae21 100644 --- a/modules/statics/test/unit/resources/amsTokenConfig.ts +++ b/modules/statics/test/unit/resources/amsTokenConfig.ts @@ -709,6 +709,7 @@ export const amsTokenConfigWithCustomToken = { walletV4ImplementationAddress: '0x944fef03af368414f29dc31a72061b8d64f568d2', nativeCoinOperationHashPrefix: 'ETHER', tokenOperationHashPrefix: 'ERC20', + zamaAclContractAddress: '0x6d3faf6f86e1ff9f3b0831dda920aba1cbd5bd68', }, primaryKeyCurve: 'secp256k1', contractAddress: '0x89a959b9184b4f8c8633646d5dfd049d2ebc983a',