Files
metamask-integration/scripts/configure-embedded-wallets.sh
2026-03-02 12:14:14 -08:00

264 lines
6.6 KiB
Bash
Executable File

#!/bin/bash
# Configure MetaMask Embedded Wallets for ChainID 138
# This script generates configuration for the MetaMask Embedded Wallets dashboard
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
log_info "========================================="
log_info "MetaMask Embedded Wallets Configuration"
log_info "========================================="
log_info ""
# Create configuration directory
CONFIG_DIR="$PROJECT_ROOT/embedded-wallets-config"
mkdir -p "$CONFIG_DIR"
# Create network configuration
log_info "Creating network configuration..."
cat > "$CONFIG_DIR/network-config.json" << 'EOF'
{
"chainId": 138,
"chainIdHex": "0x8a",
"chainName": "DeFi Oracle Meta Mainnet",
"currencySymbol": "ETH",
"currencyName": "Ether",
"decimals": 18,
"blockExplorerUrl": "https://explorer.d-bis.org",
"namespace": "eip155",
"rpcUrls": [
"https://rpc.d-bis.org",
"https://rpc2.d-bis.org"
],
"isTestnet": false,
"isMainnet": true
}
EOF
log_success "Created: $CONFIG_DIR/network-config.json"
# Create SDK configuration
log_info "Creating SDK configuration..."
cat > "$CONFIG_DIR/sdk-config.ts" << 'EOF'
// MetaMask Embedded Wallets SDK Configuration for ChainID 138
import { CHAIN_NAMESPACES } from '@web3auth/base';
export const CHAIN_138_CONFIG = {
chainNamespace: CHAIN_NAMESPACES.EIP155,
chainId: '0x8a', // 138 in hex
rpcTarget: 'https://rpc.d-bis.org',
displayName: 'DeFi Oracle Meta Mainnet',
blockExplorerUrl: 'https://explorer.d-bis.org',
ticker: 'ETH',
tickerName: 'Ether',
logo: 'https://explorer.d-bis.org/images/logo.png',
};
// Web3Auth Configuration
export const WEB3AUTH_CONFIG = {
clientId: process.env.WEB3AUTH_CLIENT_ID || 'YOUR_CLIENT_ID',
chainConfig: CHAIN_138_CONFIG,
web3AuthNetwork: 'mainnet', // or 'testnet' for development
uiConfig: {
appName: 'DeFi Oracle Meta Mainnet',
mode: 'auto', // 'light', 'dark', or 'auto'
primaryColor: '#667eea',
loginGridCol: 3,
primaryButtonColor: '#667eea',
},
};
EOF
log_success "Created: $CONFIG_DIR/sdk-config.ts"
# Create dashboard configuration guide
cat > "$CONFIG_DIR/DASHBOARD_CONFIGURATION.md" << 'EOF'
# MetaMask Embedded Wallets Dashboard Configuration
## Step-by-Step Configuration Guide
### 1. Create Project
1. Go to [MetaMask Developer Dashboard](https://dashboard.metamask.io)
2. Click "Create New Project"
3. Enter project name: "ChainID 138 Integration"
4. Select project type: "Embedded Wallets"
5. Click "Create"
### 2. Configure ChainID 138 Network
Navigate to **Configuration → Chains and Networks**:
1. Click "Add Custom Network"
2. Enter the following:
**Chain ID**: `138`
**Currency Symbol**: `ETH`
**Block Explorer URL**: `https://explorer.d-bis.org`
**Namespace**: `eip155`
**RPC URL**: `https://rpc.d-bis.org`
3. Click "Save"
4. Toggle network to "Enabled"
5. Mark as "Mainnet" (not testnet)
### 3. Configure Branding
Navigate to **Configuration → Customization → Branding**:
1. **Upload Logo**:
- Upload ChainID 138 network logo
- Recommended: 512x512px PNG
- Enable "Use logo as loader"
2. **Application Name**: "DeFi Oracle Meta Mainnet"
3. **Terms and Privacy**:
- Add Terms of Service URL (if available)
- Add Privacy Policy URL (if available)
4. **Default Language**: English
### 4. Configure Theme
Navigate to **Configuration → Customization → Theme and Colors**:
1. **Select Mode**: Auto (adapts to user preference)
2. **Primary Color**: `#667eea` (or your brand color)
3. **On Primary Color**: `#ffffff` (white text on primary)
### 5. Configure Login Modal
Navigate to **Configuration → Customization → Login Modal**:
1. **Design**:
- **Modal Appearance**: Modal Widget (pop-up)
- **Logo Alignment**: Center
- **Border Radius**: Medium
- **Border Radius Type**: Rounded
2. **Authentication Order**:
- Arrange login methods (drag and drop)
- Recommended order:
1. External Wallets (MetaMask, WalletConnect)
2. Social Logins (Google, Twitter)
3. Email/Phone
3. **External Wallets**:
- Enable "Show installed external wallets"
- Set number of wallets to display: 3-5
### 6. Add Token List
Navigate to **Configuration → Chains and Networks → ChainID 138**:
1. **Token List URL**: Add your hosted token list URL
- Example: `https://your-domain.com/token-list.json`
- Or: `https://ipfs.io/ipfs/YOUR_HASH`
2. **Verify Tokens**: Check that tokens appear correctly
### 7. Save and Publish
1. Review all configurations
2. Click "Save & Publish"
3. Changes take effect immediately
### 8. Get Client ID
1. Navigate to **Project Settings**
2. Copy your **Client ID**
3. Use in SDK configuration
---
## Configuration Values Summary
| Setting | Value |
|---------|-------|
| Chain ID | 138 (0x8a) |
| Chain Name | DeFi Oracle Meta Mainnet |
| Currency Symbol | ETH |
| RPC URL | https://rpc.d-bis.org |
| Block Explorer | https://explorer.d-bis.org |
| Namespace | eip155 |
| Network Type | Mainnet |
---
## Testing
After configuration:
1. **Test Network Addition**: Verify ChainID 138 appears in network list
2. **Test Connection**: Connect wallet using embedded wallet
3. **Test Token Display**: Verify tokens appear correctly
4. **Test Transactions**: Send test transaction
---
## Troubleshooting
### Network Not Appearing
- Verify Chain ID is correct (138)
- Check RPC URL is accessible
- Ensure network is enabled in dashboard
### Tokens Not Displaying
- Verify token list URL is accessible
- Check token list format is correct
- Ensure tokens have correct ChainID (138)
### Connection Issues
- Verify Client ID is correct
- Check SDK configuration matches dashboard
- Review browser console for errors
---
**Last Updated**: 2026-01-26
EOF
log_success "Created: $CONFIG_DIR/DASHBOARD_CONFIGURATION.md"
log_info ""
log_info "========================================="
log_info "Embedded Wallets Config Complete!"
log_info "========================================="
log_info ""
log_info "Files created in: $CONFIG_DIR"
log_info " - network-config.json (network config)"
log_info " - sdk-config.ts (SDK configuration)"
log_info " - DASHBOARD_CONFIGURATION.md (setup guide)"
log_info ""
log_info "Next steps:"
log_info "1. Review DASHBOARD_CONFIGURATION.md"
log_info "2. Configure dashboard with provided values"
log_info "3. Get Client ID from dashboard"
log_info "4. Integrate SDK in your dApp"
log_info ""