227 lines
5.6 KiB
Markdown
227 lines
5.6 KiB
Markdown
|
|
# Chainlist Schema Validation for ChainID 138
|
||
|
|
|
||
|
|
## Schema Requirements
|
||
|
|
|
||
|
|
Based on the Chainlist JSON schema, here are the required and optional fields:
|
||
|
|
|
||
|
|
### Required Fields
|
||
|
|
- ✅ `name` - Name of the Network
|
||
|
|
- ✅ `shortName` - Short identifier (pattern: `^[A-Za-z0-9-_]{1,64}$`)
|
||
|
|
- ✅ `chain` - Name of the Network
|
||
|
|
- ✅ `chainId` - Chain ID (number)
|
||
|
|
- ✅ `networkId` - Network ID (number)
|
||
|
|
- ✅ `rpc` - Array of RPC URLs (strings)
|
||
|
|
- ✅ `faucets` - Array of faucet URLs (strings)
|
||
|
|
- ✅ `infoURL` - Information URL (string)
|
||
|
|
- ✅ `nativeCurrency` - Object with `name`, `symbol`, `decimals`
|
||
|
|
|
||
|
|
### Optional Fields
|
||
|
|
- `title` - Optional title for the Network
|
||
|
|
- `icon` - Icon type/URL
|
||
|
|
- `features` - Array of feature objects (e.g., EIP155)
|
||
|
|
- `slip44` - Slip44 number
|
||
|
|
- `ens` - ENS registry configuration
|
||
|
|
- `explorers` - Array of explorer objects
|
||
|
|
- `parent` - Parent chain information
|
||
|
|
- `status` - Chain status
|
||
|
|
- `redFlags` - Array of red flags (e.g., "reusedChainId")
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Our chain-138.json Validation
|
||
|
|
|
||
|
|
### Current Configuration
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "DBIS Chain",
|
||
|
|
"chain": "DBIS",
|
||
|
|
"rpc": [
|
||
|
|
"https://rpc-http-pub.d-bis.org",
|
||
|
|
"https://rpc-http-prv.d-bis.org"
|
||
|
|
],
|
||
|
|
"faucets": [],
|
||
|
|
"nativeCurrency": {
|
||
|
|
"name": "Ether",
|
||
|
|
"symbol": "ETH",
|
||
|
|
"decimals": 18
|
||
|
|
},
|
||
|
|
"infoURL": "https://d-bis.org",
|
||
|
|
"shortName": "dbis",
|
||
|
|
"chainId": 138,
|
||
|
|
"networkId": 138,
|
||
|
|
"explorers": [
|
||
|
|
{
|
||
|
|
"name": "Blockscout",
|
||
|
|
"url": "https://explorer.d-bis.org",
|
||
|
|
"standard": "EIP3091"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"icon": "https://raw.githubusercontent.com/ethereum/ethereum.org/main/static/images/eth-diamond-black.png"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Validation Results
|
||
|
|
|
||
|
|
✅ **All Required Fields Present**:
|
||
|
|
- ✅ `name`: "DBIS Chain"
|
||
|
|
- ✅ `shortName`: "dbis" (matches pattern `^[A-Za-z0-9-_]{1,64}$`)
|
||
|
|
- ✅ `chain`: "DBIS"
|
||
|
|
- ✅ `chainId`: 138
|
||
|
|
- ✅ `networkId`: 138
|
||
|
|
- ✅ `rpc`: Array with 2 URLs
|
||
|
|
- ✅ `faucets`: Empty array (valid)
|
||
|
|
- ✅ `infoURL`: "https://d-bis.org"
|
||
|
|
- ✅ `nativeCurrency`: Object with name, symbol, decimals
|
||
|
|
|
||
|
|
✅ **Optional Fields**:
|
||
|
|
- ✅ `explorers`: Array with Blockscout explorer
|
||
|
|
- ✅ `icon`: Icon URL
|
||
|
|
|
||
|
|
✅ **Schema Compliance**: **PASSED**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Comparison with Current Chainlist Entry
|
||
|
|
|
||
|
|
### Current Entry in ethereum-lists/chains
|
||
|
|
|
||
|
|
Based on the curl test, the current entry shows:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "Defi Oracle Meta Mainnet",
|
||
|
|
"chain": "dfiometa",
|
||
|
|
"rpc": ["https://rpc.defi-oracle.io", "wss://wss.defi-oracle.io"]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Differences
|
||
|
|
|
||
|
|
| Field | Current (Chainlist) | Our Config | Action |
|
||
|
|
|-------|---------------------|------------|--------|
|
||
|
|
| `name` | "Defi Oracle Meta Mainnet" | "DBIS Chain" | ⚠️ **Decision needed** |
|
||
|
|
| `chain` | "dfiometa" | "DBIS" | ⚠️ **Decision needed** |
|
||
|
|
| `rpc` | `rpc.defi-oracle.io` | `rpc-http-pub.d-bis.org` | ✅ **Must update** |
|
||
|
|
| `shortName` | Unknown | "dbis" | ⚠️ **Check current** |
|
||
|
|
| `explorers` | Unknown | Blockscout | ⚠️ **Verify/Add** |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Recommended PR Strategy
|
||
|
|
|
||
|
|
### Option 1: Update RPC URLs Only (Safest)
|
||
|
|
- Keep existing name: "Defi Oracle Meta Mainnet"
|
||
|
|
- Keep existing chain: "dfiometa"
|
||
|
|
- **Only update RPC URLs** to new endpoints
|
||
|
|
- **Add/verify explorer** if missing
|
||
|
|
|
||
|
|
**PR Changes**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"rpc": [
|
||
|
|
"https://rpc-http-pub.d-bis.org",
|
||
|
|
"https://rpc-http-prv.d-bis.org"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Option 2: Full Update (More Comprehensive)
|
||
|
|
- Update name to "DBIS Chain" (if preferred)
|
||
|
|
- Update chain to "DBIS"
|
||
|
|
- Update RPC URLs
|
||
|
|
- Ensure all fields match our config
|
||
|
|
|
||
|
|
**PR Changes**:
|
||
|
|
- Update `name`, `chain`, `rpc`, `explorers`, etc.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Validation Checklist
|
||
|
|
|
||
|
|
Before creating PR, verify:
|
||
|
|
|
||
|
|
- [ ] All required fields are present
|
||
|
|
- [ ] `shortName` matches pattern: `^[A-Za-z0-9-_]{1,64}$`
|
||
|
|
- [ ] `rpc` array contains valid URLs
|
||
|
|
- [ ] `nativeCurrency` has `name`, `symbol`, `decimals`
|
||
|
|
- [ ] `chainId` is 138
|
||
|
|
- [ ] `networkId` is 138
|
||
|
|
- [ ] JSON is valid (no syntax errors)
|
||
|
|
- [ ] RPC URLs are accessible
|
||
|
|
- [ ] Explorer URL is accessible
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Testing Commands
|
||
|
|
|
||
|
|
### Validate JSON Structure
|
||
|
|
```bash
|
||
|
|
cat token-lists/chainlists/chain-138.json | jq .
|
||
|
|
```
|
||
|
|
|
||
|
|
### Test RPC Endpoints
|
||
|
|
```bash
|
||
|
|
# Public RPC
|
||
|
|
curl -X POST https://rpc-http-pub.d-bis.org \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
|
||
|
|
|
||
|
|
# Permissioned RPC
|
||
|
|
curl -X POST https://rpc-http-prv.d-bis.org \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Check Current Chainlist Entry
|
||
|
|
```bash
|
||
|
|
curl -s "https://raw.githubusercontent.com/ethereum-lists/chains/master/_data/chains/eip155-138/chain.json" | jq .
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## PR File Path
|
||
|
|
|
||
|
|
**Target File**: `_data/chains/eip155-138/chain.json`
|
||
|
|
|
||
|
|
**Full Path in Repository**:
|
||
|
|
```
|
||
|
|
ethereum-lists/chains/_data/chains/eip155-138/chain.json
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Recommended PR Description
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
## Update ChainID 138 RPC Endpoints
|
||
|
|
|
||
|
|
### Summary
|
||
|
|
Updates RPC endpoints for ChainID 138 to use the new public and permissioned endpoints.
|
||
|
|
|
||
|
|
### Changes
|
||
|
|
- Updated RPC URLs:
|
||
|
|
- From: `https://rpc.defi-oracle.io`, `wss://wss.defi-oracle.io`
|
||
|
|
- To: `https://rpc-http-pub.d-bis.org`, `https://rpc-http-prv.d-bis.org`
|
||
|
|
|
||
|
|
### Reason
|
||
|
|
The previous RPC endpoints have been deprecated. The new endpoints provide:
|
||
|
|
- Public access for general use (MetaMask, dApps)
|
||
|
|
- Permissioned access for authorized services
|
||
|
|
|
||
|
|
### Testing
|
||
|
|
- ✅ Verified RPC endpoints return Chain ID 138 (0x8a)
|
||
|
|
- ✅ Tested `eth_chainId` method on both endpoints
|
||
|
|
- ✅ Verified JSON schema compliance
|
||
|
|
- ✅ Validated all required fields are present
|
||
|
|
|
||
|
|
### Related
|
||
|
|
- Explorer: https://explorer.d-bis.org
|
||
|
|
- Token List: https://raw.githubusercontent.com/Defi-Oracle-Meta-Blockchain/metamask-integration/main/config/token-list.json
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Last Updated**: 2025-12-24
|
||
|
|
**Status**: ✅ Schema Validation Complete - Ready for PR
|
||
|
|
|