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

7.2 KiB
Raw Blame History

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

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:
    [{"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

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

# 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)

# 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