Files
proxmox/docs/04-configuration/PR_ADDITIONS_VALIDATION_REPORT.md
defiQUG b3a8fe4496
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
chore: sync all changes to Gitea
- Config, docs, scripts, and backup manifests
- Submodule refs unchanged (m = modified content in submodules)

Made-with: Cursor
2026-03-02 11:37:34 -08:00

172 lines
7.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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, 130 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, 110000 items | 6 tokens | ✅ |
| **token.chainId** | integer, min 1 | 138 | ✅ |
| **token.address** | checksummed 0x hex or Solana | Must be EIP-55 | ⚠️ Verify |
| **token.decimals** | 0255 | 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
### 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** | ✅ | 1 | ⚠️ Verify |
| **rpc** | ✅ | array of strings | ✅ |
| **faucets** | ✅ | [] | ✅ |
| **infoURL** | ✅ | "https://d-bis.org" | ✅ |
| **nativeCurrency** | ✅ | { name, symbol, decimals } | ✅ |
| **icon** | ❌ | "defioraclemeta" | ⚠️ Requires icon file |
### Issues to fix
1. **networkId** — Currently `1`. Most EVM mainnets use `networkId === chainId`. Chain 138 may use networkId 138; verify from chain config. If wrong, change to `138`.
2. **icon** — Using `"icon": "defioraclemeta"` requires `_data/icons/defioraclemeta.json` to exist. Format:
```json
[{"url":"ipfs://Qm...","width":1000,"height":1628,"format":"png"}]
```
The URL must be IPFS and retrievable via `ipfs get`. **Option:** Remove `icon` field to avoid needing the icon file (some chains omit it).
3. **explorers[].icon** — We don't use explorer icon; OK.
4. **Prettier** — Run `npx prettier --write _data/chains/eip155-138.json` before PR.
### 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
```