- Update dbis_core, cross-chain-pmm-lps, explorer-monorepo, metamask-integration, pr-workspace/chains - Omit embedded publish git dirs and empty placeholders from index Made-with: Cursor
169 lines
7.2 KiB
Markdown
169 lines
7.2 KiB
Markdown
# PR Additions Validation Report — Format and Content Checks
|
||
|
||
**Last Updated:** 2026-02-28
|
||
**Purpose:** Double-check formatting and content for each PR addition before submission.
|
||
|
||
---
|
||
|
||
## 1. Token List (dbis-138.tokenlist.json) — tokenlists.org / Uniswap schema
|
||
|
||
### Schema requirements (from tokenlist.schema.json)
|
||
|
||
| Field | Requirement | Our value | Status |
|
||
|-------|--------------|-----------|--------|
|
||
| **name** | string, 1–30 chars, pattern `^[\w ]+$` | "DBIS Chain 138 Token List" (24 chars) | ✅ |
|
||
| **timestamp** | date-time format | "2026-02-16T00:00:00.000Z" | ✅ |
|
||
| **version** | { major, minor, patch } | { 1, 3, 0 } | ✅ |
|
||
| **tokens** | array, 1–10000 items | 6 tokens | ✅ |
|
||
| **token.chainId** | integer, min 1 | 138 | ✅ |
|
||
| **token.address** | checksummed 0x hex or Solana | Must be EIP-55 | ⚠️ Verify |
|
||
| **token.decimals** | 0–255 | 6, 8, 18 | ✅ |
|
||
| **token.name** | max 60 chars | All valid | ✅ |
|
||
| **token.symbol** | max 20 chars, `^\S+$` | ETH-USD, WETH, etc. | ✅ |
|
||
| **tags** (in tokens) | must exist in list-level tags | oracle, pricefeed, defi, wrapped, stablecoin, compliant, ccip | ✅ |
|
||
| **logoURI** | format uri | https://... | ✅ |
|
||
|
||
### Issues to fix
|
||
|
||
1. **ETH/USD Price Feed** — Oracle contract at `0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6` is not a standard ERC20; tokenlists.org typically lists ERC20 tokens. Consider removing or confirming it's acceptable.
|
||
2. **Address checksums** — Run `cast to-checksum-address` for each address to ensure EIP-55. WETH10: CHAIN138_TOKEN_ADDRESSES has `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f` (lowercase f); token list has `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9F` (uppercase F). One is wrong.
|
||
3. **tokenMap** — Schema allows optional `tokenMap`; our list omits it. Optional, no change needed.
|
||
|
||
### Validation command
|
||
|
||
```bash
|
||
cd /home/intlc/projects/token-lists && npm install && npx ajv validate -s src/tokenlist.schema.json -d /home/intlc/projects/proxmox/token-lists/lists/dbis-138.tokenlist.json
|
||
```
|
||
|
||
---
|
||
|
||
## 2. Chainlist (eip155-138.json) — ethereum-lists/chains
|
||
|
||
**Upstream:** Merged [chains#8124](https://github.com/ethereum-lists/chains/pull/8124) / [cb4c47b](https://github.com/ethereum-lists/chains/commit/cb4c47b0345fa8688dbc0133e0aa1cd3fb211a80). This repo’s [pr-ready/eip155-138.json](pr-ready/eip155-138.json) tracks [upstream `master`](https://github.com/ethereum-lists/chains/blob/master/_data/chains/eip155-138.json).
|
||
|
||
### Schema requirements (chainSchema.json)
|
||
|
||
| Field | Required | Our value | Status |
|
||
|-------|----------|-----------|--------|
|
||
| **name** | ✅ | "Defi Oracle Meta Mainnet" | ✅ |
|
||
| **shortName** | ✅ | "dfio-meta-main" — pattern `^[A-Za-z0-9-_]{1,64}$` | ✅ |
|
||
| **chain** | ✅ | "dfiometa" | ✅ |
|
||
| **chainId** | ✅ | 138 | ✅ |
|
||
| **networkId** | ✅ | 138 | ✅ |
|
||
| **rpc** | ✅ | public HTTPS + WSS (d-bis.org + defi-oracle.io mirrors) | ✅ |
|
||
| **faucets** | ✅ | [] | ✅ |
|
||
| **infoURL** | ✅ | "https://d-bis.org" | ✅ |
|
||
| **nativeCurrency** | ✅ | { name, symbol, decimals } | ✅ |
|
||
| **features** | optional | EIP155, EIP1559, EIP2718, EIP2930 | ✅ |
|
||
| **icon** | ❌ | (omitted upstream) | ✅ |
|
||
|
||
### Follow-up PRs only
|
||
|
||
1. **Prettier** — Run `npx prettier --write _data/chains/eip155-138.json` before any new PR to ethereum-lists/chains.
|
||
2. **Icon** — If adding `"icon"`, supply matching `_data/icons/<id>.json` per upstream rules.
|
||
|
||
### Validation command
|
||
|
||
```bash
|
||
cd /home/intlc/projects/chains
|
||
cp /home/intlc/projects/proxmox/docs/04-configuration/pr-ready/eip155-138.json _data/chains/
|
||
./gradlew run
|
||
npx prettier --write _data/chains/eip155-138.json
|
||
```
|
||
|
||
---
|
||
|
||
## 3. Trust Wallet (trust-wallet-registry-chain138.json) — wallet-core
|
||
|
||
### Registry format (from registry-fields.md)
|
||
|
||
| Field | Requirement | Our value | Status |
|
||
|-------|--------------|-----------|--------|
|
||
| **id** | lowercase, never change | "dfiometa" | ✅ |
|
||
| **name** | readable | "Defi Oracle Meta Mainnet" | ✅ |
|
||
| **coinId** | 10000000 + chainId for EVM clones | 10000138 | ✅ |
|
||
| **symbol** | native coin | "ETH" | ✅ |
|
||
| **decimals** | 18 | 18 | ✅ |
|
||
| **blockchain** | "Ethereum" for EVM | "Ethereum" | ✅ |
|
||
| **derivation** | path m/44'/60'/0'/0/0 | ✅ | ✅ |
|
||
| **chainId** | string | "138" | ✅ |
|
||
| **explorer.sampleTx** | Real tx hash for URL validation | "" | ❌ **MUST FIX** |
|
||
| **explorer.sampleAccount** | Real address for URL validation | "" | ❌ **MUST FIX** |
|
||
|
||
### Issues to fix
|
||
|
||
1. **sampleTx** — Must be a real transaction hash from Chain 138. Get from https://explorer.d-bis.org (any recent tx).
|
||
2. **sampleAccount** — Must be a real address. Use any address that has had activity.
|
||
|
||
From registry-fields.md: *"Note that the sample values should include existing IDs, so that the resulting full URL is valid."*
|
||
|
||
### How to get sample values
|
||
|
||
```bash
|
||
# From explorer or RPC
|
||
curl -s "https://explorer.d-bis.org/api/v2/transactions" | jq '.items[0].hash'
|
||
curl -s "https://explorer.d-bis.org/api/v2/addresses/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" | jq '.hash'
|
||
# Or use a known address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 (WETH)
|
||
```
|
||
|
||
---
|
||
|
||
## 4. DefiLlama-Adapters — Protocol TVL
|
||
|
||
### Not a token list
|
||
|
||
DefiLlama adapters return TVL (total value locked), not token lists. Each protocol (e.g. DODO) has an `index.js` exporting `tvl(api)` per chain.
|
||
|
||
### Chain 138 support
|
||
|
||
- DefiLlama uses chain keys: `ethereum`, `bsc`, `polygon`, `arbitrum`, etc.
|
||
- Chain 138 is likely **not** a built-in chain key. Check `DefiLlama-Adapters/helper/chains.js` or similar.
|
||
- If adding DODO on Chain 138, you must:
|
||
1. Confirm DefiLlama supports chain 138 (may need PR to add chain first)
|
||
2. Add config entry and tvl logic for the chain key they use (e.g. `chain138` or `defi-oracle-meta`)
|
||
|
||
### No PR-ready file
|
||
|
||
We do not have a DefiLlama adapter file. Create one only after confirming chain support.
|
||
|
||
---
|
||
|
||
## Summary — Action Items
|
||
|
||
| Addition | File | Status |
|
||
|----------|------|--------|
|
||
| **Token list** | dbis-138.tokenlist.json | ✅ WETH10 address fixed to checksum per CHAIN138_TOKEN_ADDRESSES |
|
||
| **Chainlist** | eip155-138.json | ✅ networkId→138; icon removed (avoids needing _data/icons file) |
|
||
| **Trust Wallet** | trust-wallet-registry-chain138.json | ✅ sampleTx and sampleAccount added (real tx from explorer) |
|
||
| **DefiLlama** | N/A | No PR until chain 138 is supported; adapter structure differs |
|
||
|
||
---
|
||
|
||
## Verification commands (run before PR)
|
||
|
||
```bash
|
||
# Token list (from token-lists repo)
|
||
cd /home/intlc/projects/token-lists
|
||
npm install
|
||
# Validate schema (if ajv available)
|
||
node -e "
|
||
const schema = require('./src/tokenlist.schema.json');
|
||
const list = require('/home/intlc/projects/proxmox/token-lists/lists/dbis-138.tokenlist.json');
|
||
console.log('name length:', list.name.length, '(max 30)');
|
||
console.log('tokens:', list.tokens.length);
|
||
list.tokens.forEach(t => console.log(t.symbol, t.address));
|
||
"
|
||
|
||
# Chains
|
||
cd /home/intlc/projects/chains
|
||
cp ../../proxmox/docs/04-configuration/pr-ready/eip155-138.json _data/chains/
|
||
npx prettier --write _data/chains/eip155-138.json
|
||
./gradlew run
|
||
|
||
# Trust Wallet - use registry id, not chainId
|
||
# Add entry from pr-ready/trust-wallet-registry-chain138.json to registry.json first
|
||
. "$HOME/.cargo/env" # if Rust installed via rustup
|
||
cd /home/intlc/projects/wallet-core
|
||
./tools/new-evmchain dfiometa # use registry id, NOT 138
|
||
```
|