- 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.
3.2 KiB
3.2 KiB
Blockscout MetaMask Integration
Blockscout configuration for MetaMask Portfolio compatibility.
Overview
Blockscout must be configured to support MetaMask Portfolio's token auto-detection and balance display features.
Required API Endpoints
Token Metadata
Blockscout must provide token metadata via API:
GET /api/v2/tokens/{address}
Response:
{
"address": "0x...",
"name": "Wrapped Ether",
"symbol": "WETH",
"decimals": 18,
"total_supply": "1000000000000000000000",
"holders_count": 100,
"transactions_count": 1000
}
Token Holders
GET /api/v2/tokens/{address}/holders
Account Token Balances
GET /api/v2/addresses/{address}/token-balances
CORS Configuration
Required CORS Headers
Blockscout must allow CORS requests from MetaMask Portfolio:
Access-Control-Allow-Origin: https://portfolio.metamask.io
Access-Control-Allow-Methods: GET, OPTIONS
Access-Control-Allow-Headers: Content-Type
Access-Control-Max-Age: 3600
Configuration
Add to Blockscout deployment:
env:
- name: CORS_ALLOWED_ORIGINS
value: "https://portfolio.metamask.io,https://metamask.io,https://chainlist.org"
- name: ENABLE_CORS
value: "true"
Token Logo Serving
Logo URL Format
Token logos should be served from:
https://explorer.d-bis.org/images/tokens/{address}.png
Configuration
- Enable Logo Serving: Enable logo serving in Blockscout
- Logo Storage: Store logos in Blockscout or CDN
- Fallback: Use default token logo if not found
- Format: PNG format, 512x512 pixels
Contract Verification
Required for Token Metadata
All token contracts should be verified on Blockscout to provide accurate metadata:
- Verify Contracts: Verify all token contracts
- Update Metadata: Update token metadata as needed
- Monitor: Monitor for contract updates
API Rate Limiting
Portfolio-Specific Limits
Configure rate limiting for Portfolio requests:
- Default: 120 requests/minute per IP
- Portfolio: Higher limits for Portfolio domain
- API Keys: Optional API keys for higher limits
Testing
Test Checklist
- Token metadata API works
- Token holders API works
- Account token balances API works
- CORS headers are present
- Token logos are accessible
- Contract verification works
- Rate limiting works correctly
Test Commands
# Test token metadata API
curl https://explorer.d-bis.org/api/v2/tokens/0xYourTokenAddress
# Test CORS headers
curl -H "Origin: https://portfolio.metamask.io" \
-H "Access-Control-Request-Method: GET" \
-X OPTIONS \
https://explorer.d-bis.org/api/v2/tokens/0xYourTokenAddress
# Test token logo
curl https://explorer.d-bis.org/images/tokens/0xYourTokenAddress.png
Monitoring
Metrics
- API request rate
- CORS request rate
- Token metadata API usage
- Logo serving performance
- Error rates
Alerts
- API errors
- CORS configuration issues
- Logo serving failures
- Rate limiting issues