Add full monorepo: virtual-banker, backend, frontend, docs, scripts, deployment
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
226
docs/CHAINLIST_SCHEMA_VALIDATION.md
Normal file
226
docs/CHAINLIST_SCHEMA_VALIDATION.md
Normal file
@@ -0,0 +1,226 @@
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user