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:
156
docs/operations/integrations/BLOCKSCOUT_METAMASK.md
Normal file
156
docs/operations/integrations/BLOCKSCOUT_METAMASK.md
Normal file
@@ -0,0 +1,156 @@
|
||||
# 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**:
|
||||
```json
|
||||
{
|
||||
"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:
|
||||
|
||||
```yaml
|
||||
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
|
||||
|
||||
1. **Enable Logo Serving**: Enable logo serving in Blockscout
|
||||
2. **Logo Storage**: Store logos in Blockscout or CDN
|
||||
3. **Fallback**: Use default token logo if not found
|
||||
4. **Format**: PNG format, 512x512 pixels
|
||||
|
||||
## Contract Verification
|
||||
|
||||
### Required for Token Metadata
|
||||
|
||||
All token contracts should be verified on Blockscout to provide accurate metadata:
|
||||
|
||||
1. **Verify Contracts**: Verify all token contracts
|
||||
2. **Update Metadata**: Update token metadata as needed
|
||||
3. **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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
## References
|
||||
|
||||
- [Blockscout API Documentation](https://docs.blockscout.com/for-developers/api)
|
||||
- [MetaMask Portfolio](https://portfolio.metamask.io)
|
||||
- [CORS Configuration](https://docs.blockscout.com/for-developers/api/cors)
|
||||
|
||||
Reference in New Issue
Block a user