Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control. - Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities. - Created .gitmodules to include OpenZeppelin contracts as a submodule. - Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment. - Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks. - Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring. - Created scripts for resource import and usage validation across non-US regions. - Added tests for CCIP error handling and integration to ensure robust functionality. - Included various new files and directories for the orchestration portal and deployment scripts.
This commit is contained in:
167
docs/operations/integrations/METAMASK_PORTFOLIO.md
Normal file
167
docs/operations/integrations/METAMASK_PORTFOLIO.md
Normal file
@@ -0,0 +1,167 @@
|
||||
# MetaMask Portfolio Compatibility for ChainID 138
|
||||
|
||||
Guide for MetaMask Portfolio compatibility with ChainID 138.
|
||||
|
||||
## Current Status
|
||||
|
||||
ChainID 138 is **not** currently supported in MetaMask Portfolio's native features (Swaps, Bridge, Buy/Sell). However, read-only features (balances, token display) may work if token metadata is properly configured.
|
||||
|
||||
## Portfolio Read-Only Features
|
||||
|
||||
### Token Auto-Detection
|
||||
|
||||
MetaMask Portfolio can auto-detect tokens when they appear on **2+ reputable token lists**. To enable auto-detection:
|
||||
|
||||
1. **Official Token List**: Maintain an official token list for ChainID 138
|
||||
2. **Token List Inclusion**: Submit token list to reputable aggregators:
|
||||
- CoinGecko Token Lists
|
||||
- Uniswap Token Lists
|
||||
- Other major DEX token lists
|
||||
3. **Explorer Metadata**: Ensure Blockscout returns standard ERC-20 metadata endpoints
|
||||
|
||||
### Balance Visibility
|
||||
|
||||
Portfolio can display token balances if:
|
||||
|
||||
- Token metadata is available on token lists
|
||||
- Explorer returns standard ERC-20 metadata
|
||||
- Token contract implements standard ERC-20 interface
|
||||
- Token balances are queryable via RPC
|
||||
|
||||
### Token Symbols and Logos
|
||||
|
||||
Portfolio displays token symbols and logos from:
|
||||
|
||||
- Token lists (primary source)
|
||||
- Explorer metadata (fallback)
|
||||
- Contract metadata (if available)
|
||||
|
||||
## CAIP-2 Identifier
|
||||
|
||||
ChainID 138 uses the CAIP-2 identifier: `eip155:138`
|
||||
|
||||
This identifier is used by:
|
||||
- Portfolio for chain identification
|
||||
- Token lists for chain-specific tokens
|
||||
- Indexers for chain-specific data
|
||||
|
||||
## Blockscout Integration
|
||||
|
||||
### Required API Endpoints
|
||||
|
||||
Blockscout must provide these endpoints for Portfolio compatibility:
|
||||
|
||||
1. **Token Metadata**: `/api/v2/tokens/{address}`
|
||||
- Returns: name, symbol, decimals, total_supply
|
||||
|
||||
2. **Token Holders**: `/api/v2/tokens/{address}/holders`
|
||||
- Returns: list of token holders
|
||||
|
||||
3. **Token Transfers**: `/api/v2/tokens/{address}/transfers`
|
||||
- Returns: token transfer history
|
||||
|
||||
### CORS Configuration
|
||||
|
||||
Blockscout must allow CORS requests from Portfolio:
|
||||
|
||||
```
|
||||
Access-Control-Allow-Origin: https://portfolio.metamask.io
|
||||
Access-Control-Allow-Methods: GET, OPTIONS
|
||||
Access-Control-Allow-Headers: Content-Type
|
||||
```
|
||||
|
||||
### Token Logo Serving
|
||||
|
||||
Token logos should be served from Blockscout or CDN:
|
||||
|
||||
- URL format: `https://explorer.d-bis.org/images/tokens/{address}.png`
|
||||
- Fallback: Token logo from token list
|
||||
- Standard: 512x512 PNG format
|
||||
|
||||
## Token List Requirements
|
||||
|
||||
### Official Token List
|
||||
|
||||
The official token list for ChainID 138 must:
|
||||
|
||||
1. **Follow Token Lists Schema**: Use Uniswap Token Lists JSON schema
|
||||
2. **Include All Tokens**: Include all ecosystem tokens
|
||||
3. **Provide Logos**: Include logo URLs for all tokens
|
||||
4. **Maintain Accuracy**: Keep token metadata up to date
|
||||
5. **Host Publicly**: Host on public URL (HTTPS)
|
||||
|
||||
### Token List Submission
|
||||
|
||||
Submit token list to:
|
||||
|
||||
1. **CoinGecko**: For token discovery
|
||||
2. **Uniswap**: For DEX integration
|
||||
3. **Other Aggregators**: For wider reach
|
||||
|
||||
## Limitations
|
||||
|
||||
### Not Supported (Requires MetaMask Partnership)
|
||||
|
||||
- **Swaps**: In-wallet swap aggregator
|
||||
- **Bridge**: Portfolio Bridge integration
|
||||
- **Buy/Sell**: Fiat on/off-ramps
|
||||
- **Advanced Charts**: Market data and charts
|
||||
- **Full Portfolio Features**: Complete portfolio functionality
|
||||
|
||||
### Supported (Read-Only)
|
||||
|
||||
- **Token Balances**: Display token balances
|
||||
- **Token Symbols**: Display token symbols
|
||||
- **Token Logos**: Display token logos
|
||||
- **Transaction History**: View transaction history (via explorer)
|
||||
- **Account Overview**: Basic account information
|
||||
|
||||
## Testing Portfolio Compatibility
|
||||
|
||||
### Checklist
|
||||
|
||||
- [ ] Token list is publicly accessible
|
||||
- [ ] Token list follows Token Lists schema
|
||||
- [ ] Token logos are accessible
|
||||
- [ ] Blockscout API endpoints work
|
||||
- [ ] CORS headers are configured
|
||||
- [ ] Token metadata is accurate
|
||||
- [ ] Token balances are queryable
|
||||
- [ ] CAIP-2 identifier is used correctly
|
||||
|
||||
### Test Steps
|
||||
|
||||
1. **Add Network**: Add ChainID 138 to MetaMask
|
||||
2. **Add Tokens**: Add tokens to MetaMask
|
||||
3. **Check Portfolio**: Open MetaMask Portfolio
|
||||
4. **Verify Balances**: Check if token balances display
|
||||
5. **Verify Symbols**: Check if token symbols display
|
||||
6. **Verify Logos**: Check if token logos display
|
||||
7. **Test Explorer**: Verify explorer links work
|
||||
|
||||
## Future Integration
|
||||
|
||||
### Path to Full Support
|
||||
|
||||
To enable full Portfolio features:
|
||||
|
||||
1. **Business Development**: Engage with Consensys for partnership
|
||||
2. **Liquidity Requirements**: Ensure sufficient liquidity for swaps
|
||||
3. **Bridge Integration**: Integrate with bridge providers
|
||||
4. **On-Ramp Partners**: Partner with fiat on/ramp providers
|
||||
5. **Regulatory Compliance**: Ensure regulatory compliance
|
||||
|
||||
### Tracking
|
||||
|
||||
- Monitor MetaMask Portfolio updates
|
||||
- Track network support announcements
|
||||
- Engage with Consensys for integration
|
||||
- Submit feature requests
|
||||
|
||||
## References
|
||||
|
||||
- [MetaMask Portfolio](https://portfolio.metamask.io)
|
||||
- [Token Lists](https://tokenlists.org)
|
||||
- [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md)
|
||||
- [Blockscout API](https://docs.blockscout.com/for-developers/api)
|
||||
|
||||
Reference in New Issue
Block a user