2026-02-10 11:32:49 -08:00
|
|
|
|
# WETH9 and WETH10 Issues and Fixes
|
|
|
|
|
|
|
|
|
|
|
|
**Date**: $(date)
|
|
|
|
|
|
**Status**: ✅ **All Issues Documented and Fixes Provided**
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Issues Identified
|
|
|
|
|
|
|
|
|
|
|
|
### WETH9 Issues
|
|
|
|
|
|
|
|
|
|
|
|
1. **decimals() returns 0** ⚠️
|
|
|
|
|
|
- **Impact**: Display issues in wallets (MetaMask shows incorrect format)
|
|
|
|
|
|
- **Severity**: Low (display only, doesn't affect functionality)
|
|
|
|
|
|
- **Status**: Known WETH9 limitation
|
|
|
|
|
|
|
|
|
|
|
|
2. **Function signature search limitation** ⚠️
|
|
|
|
|
|
- **Impact**: None (functions work correctly)
|
|
|
|
|
|
- **Severity**: None (heuristic limitation only)
|
|
|
|
|
|
- **Status**: Not a real issue
|
|
|
|
|
|
|
|
|
|
|
|
### WETH10 Issues
|
|
|
|
|
|
|
|
|
|
|
|
1. **No tokens minted yet** ℹ️
|
|
|
|
|
|
- **Impact**: Contract is empty (0 supply, 0 balance)
|
|
|
|
|
|
- **Severity**: None (normal for unused contract)
|
|
|
|
|
|
- **Status**: Expected behavior
|
|
|
|
|
|
|
|
|
|
|
|
2. **decimals() returns 18** ✅
|
|
|
|
|
|
- **Status**: Correct! No issue here
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Solutions and Fixes
|
|
|
|
|
|
|
|
|
|
|
|
### Fix 1: Token Metadata Files
|
|
|
|
|
|
|
|
|
|
|
|
Since WETH9 and WETH10 are pre-deployed contracts that cannot be modified, we create token metadata files for wallets to use correct decimals.
|
|
|
|
|
|
|
|
|
|
|
|
#### WETH9 Token Metadata
|
|
|
|
|
|
|
|
|
|
|
|
**File**: `docs/WETH9_TOKEN_METADATA.json`
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"chainId": 138,
|
|
|
|
|
|
"address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
|
|
|
|
|
"name": "Wrapped Ether",
|
|
|
|
|
|
"symbol": "WETH",
|
|
|
|
|
|
"decimals": 18,
|
|
|
|
|
|
"logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### WETH10 Token Metadata
|
|
|
|
|
|
|
|
|
|
|
|
**File**: `docs/WETH10_TOKEN_METADATA.json`
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"chainId": 138,
|
|
|
|
|
|
"address": "0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f",
|
2026-03-24 22:49:29 -07:00
|
|
|
|
"name": "Wrapped Ether v10",
|
2026-02-10 11:32:49 -08:00
|
|
|
|
"symbol": "WETH10",
|
|
|
|
|
|
"decimals": 18,
|
|
|
|
|
|
"logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Fix 2: Updated Token List
|
|
|
|
|
|
|
|
|
|
|
|
**File**: `docs/METAMASK_TOKEN_LIST_FIXED.json`
|
|
|
|
|
|
|
|
|
|
|
|
Includes both WETH9 and WETH10 with correct decimals (18).
|
|
|
|
|
|
|
|
|
|
|
|
### Fix 3: Helper Scripts
|
|
|
|
|
|
|
|
|
|
|
|
#### Script: `scripts/get-token-info.sh`
|
|
|
|
|
|
|
|
|
|
|
|
Provides correct token information including decimals override.
|
|
|
|
|
|
|
|
|
|
|
|
#### Script: `scripts/fix-wallet-display.sh`
|
|
|
|
|
|
|
|
|
|
|
|
Instructions and commands to fix wallet display issues.
|
|
|
|
|
|
|
|
|
|
|
|
### Fix 4: Documentation Updates
|
|
|
|
|
|
|
|
|
|
|
|
All documentation updated to include:
|
|
|
|
|
|
- How to manually set decimals in wallets
|
|
|
|
|
|
- Token metadata files
|
|
|
|
|
|
- Workaround instructions
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Implementation
|
|
|
|
|
|
|
|
|
|
|
|
### Step 1: Create Token Metadata Files
|
|
|
|
|
|
|
|
|
|
|
|
Token metadata files have been created with correct decimals.
|
|
|
|
|
|
|
|
|
|
|
|
### Step 2: Update Token Lists
|
|
|
|
|
|
|
|
|
|
|
|
Token lists have been updated to include correct decimals.
|
|
|
|
|
|
|
|
|
|
|
|
### Step 3: Create Helper Scripts
|
|
|
|
|
|
|
|
|
|
|
|
Helper scripts have been created to work around the decimals issue.
|
|
|
|
|
|
|
|
|
|
|
|
### Step 4: Update Documentation
|
|
|
|
|
|
|
|
|
|
|
|
All documentation has been updated with fixes and workarounds.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Usage Instructions
|
|
|
|
|
|
|
|
|
|
|
|
### For MetaMask Users
|
|
|
|
|
|
|
|
|
|
|
|
1. **Import Token Manually**:
|
|
|
|
|
|
- Go to MetaMask → Import Tokens
|
|
|
|
|
|
- Enter contract address
|
|
|
|
|
|
- **Important**: Set decimals to **18** (not 0)
|
|
|
|
|
|
- Add token
|
|
|
|
|
|
|
|
|
|
|
|
2. **Use Token List**:
|
|
|
|
|
|
- Add token list URL (if hosted)
|
|
|
|
|
|
- Tokens will appear with correct decimals
|
|
|
|
|
|
|
|
|
|
|
|
### For Developers
|
|
|
|
|
|
|
|
|
|
|
|
1. **Use Token Metadata Files**:
|
|
|
|
|
|
- Load metadata from `docs/WETH9_TOKEN_METADATA.json`
|
|
|
|
|
|
- Use decimals: 18 (not from contract)
|
|
|
|
|
|
|
|
|
|
|
|
2. **In Code**:
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
// Always use 18 decimals for WETH9/WETH10
|
|
|
|
|
|
const decimals = 18; // Don't read from contract
|
|
|
|
|
|
const balance = await contract.balanceOf(address);
|
|
|
|
|
|
const formatted = ethers.utils.formatUnits(balance, 18);
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Verification
|
|
|
|
|
|
|
|
|
|
|
|
### WETH9 Status
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ Contract exists and functional
|
|
|
|
|
|
- ✅ 1:1 backing maintained (8 ETH = 8 WETH9)
|
|
|
|
|
|
- ⚠️ decimals() returns 0 (fixed with metadata)
|
|
|
|
|
|
- ✅ All functions work correctly
|
|
|
|
|
|
|
|
|
|
|
|
### WETH10 Status
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ Contract exists and functional
|
|
|
|
|
|
- ✅ decimals() returns 18 (correct!)
|
|
|
|
|
|
- ℹ️ No tokens minted yet (normal)
|
|
|
|
|
|
- ✅ All functions work correctly
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Summary
|
|
|
|
|
|
|
|
|
|
|
|
**All issues have been addressed:**
|
|
|
|
|
|
|
|
|
|
|
|
1. ✅ WETH9 decimals issue: Fixed with metadata files and documentation
|
|
|
|
|
|
2. ✅ WETH10: No issues (decimals correct)
|
|
|
|
|
|
3. ✅ Token lists updated
|
|
|
|
|
|
4. ✅ Helper scripts created
|
|
|
|
|
|
5. ✅ Documentation complete
|
|
|
|
|
|
|
|
|
|
|
|
**The contracts are functional. The only issue is a display problem with WETH9 decimals, which is fixed with proper metadata.**
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
**Last Updated**: $(date)
|