- Update submodule references for explorer-monorepo and smom-dbis-138 to latest commits. - Modify CI workflow to include shellcheck installation and enforce error severity for script checks. - Update contract addresses in configuration and documentation to reflect the new canonical addresses for CCIPWETH9Bridge and CCIP Router. - Revise integration test documentation to align with updated contract addresses and deployment statuses. Made-with: Cursor
8.7 KiB
Explorer + MetaMask Technical Response — 5 Items for Exact Config
Purpose: Reply to the technical review so you get exact “do this / set that” config values for the explorer and MetaMask.
Ready-to-send reply (copy-paste all below)
5 items (send as-is)
1) RPC URL used by MetaMask
- Public (MetaMask / dApps):
https://rpc-http-pub.d-bis.org - WebSocket:
wss://rpc-ws-pub.d-bis.org - Internal:
http://192.168.11.221:8545
2) ChainId
- Decimal:
138 - Hex:
0x8a
3) Explorer backend stack
- Backend: Blockscout (Docker container on VMID 5000, API on port 4000)
- Frontend: SolaceScanScout SPA served by nginx on VMID 5000; frontend calls
/api(nginx proxy tohttp://127.0.0.1:4000) and uses the same RPC for wallet/fallback
4) Intended wrapped-native (WETH9) on chain (Chain 138)
- WETH9:
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2(same as Ethereum mainnet by design; canonical bytecode verified on 138) - WETH10:
0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f - Bridges:
- WETH9 Bridge:
0xcacfd227A040002e49e2e01626363071324f820a - WETH10 Bridge:
0xe0E93247376aa097dB308B92e6Ba36bA015535D0
- WETH9 Bridge:
5) EIP-1559
- Yes — blocks include
baseFeePerGas
Summary table (paste-friendly)
| # | Item | Value |
|---|---|---|
| 1 | RPC URL (MetaMask) | https://rpc-http-pub.d-bis.org (WS: wss://rpc-ws-pub.d-bis.org) |
| 2 | ChainId | Decimal: 138 — Hex: 0x8a |
| 3 | Explorer backend stack | Blockscout (VMID 5000:4000) + SolaceScanScout (nginx on VMID 5000) |
| 4 | Wrapped-native (WETH9) | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 |
| 5 | EIP-1559 | Yes — baseFeePerGas present |
Optional: Backend RPC and API wiring (for "Loading…" fixes)
- Blockscout env (VMID 5000):
ETHEREUM_JSONRPC_HTTP_URL=http://192.168.11.221:8545ETHEREUM_JSONRPC_WS_URL=ws://192.168.11.221:8546ETHEREUM_JSONRPC_VARIANT=besuCHAIN_ID=138
- Frontend: calls
/api(same origin onhttps://explorer.d-bis.org); nginx proxies/api→ Blockscout:4000 - TRACE API: enabled on public RPC node (VMID 2201) so Blockscout can index internals/block rewards
1. RPC URL used by MetaMask
- Public (recommended for MetaMask / dApps):
- HTTPS:
https://rpc-http-pub.d-bis.org - WebSocket:
wss://rpc-ws-pub.d-bis.org
- HTTPS:
- Internal (same backend, HTTP only):
http://192.168.11.221:8545(VMID 2201, besu-rpc-public-1)
MetaMask and the explorer frontend use the HTTPS URL when the site is served over https://explorer.d-bis.org; otherwise they fall back to the HTTP URL. The explorer backend (Blockscout) uses http://192.168.11.221:8545 (same node).
2. ChainId (hex and decimal)
- Decimal:
138 - Hex:
0x8a(also written0x8Ain some UIs)
3. Explorer backend stack
- Backend: Blockscout (Docker container on VMID 5000, API on port 4000).
- Frontend: Custom SPA “SolaceScanScout” (static HTML/JS in
explorer-monorepo/frontend/public/), served by nginx on VMID 5000. The frontend calls:- Blockscout API at
/api(proxied by nginx tohttp://127.0.0.1:4000). - RPC (for fallback / wallet) at
https://rpc-http-pub.d-bis.orgorhttp://192.168.11.221:8545as above.
- Blockscout API at
So: Blockscout is the indexer/API; SolaceScanScout is the custom frontend branding and UI.
Screenshots (live UI): See ../images/README.md for image list. Reference images (replace with live captures from https://explorer.d-bis.org/ if desired):
| View | Image |
|---|---|
| Home (stats, Gas & Network, Latest Blocks/Transactions) | ![]() |
| Blocks list | ![]() |
| Transactions list | ![]() |
4. Intended wrapped-native contract addresses (Chain 138)
Chain 138 intentionally uses the same addresses as Ethereum mainnet for WETH9/WETH10 (deployed-at-same-address / CREATE2-style setup). They exist on Chain 138 and are the intended wrapped-native contracts.
| Token / Bridge | Address (Chain 138) | Notes |
|---|---|---|
| WETH9 (wrapped-native) | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 |
Same as mainnet; canonical WETH9 bytecode verified on 138 (see smom-dbis-138/scripts/verify-weth9-canonical.js). |
| WETH10 | 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f |
Same as mainnet. |
| WETH9 Bridge (CCIP) | 0xcacfd227A040002e49e2e01626363071324f820a |
In config/contract-addresses.conf as ADDR_CCIPWETH9_BRIDGE. |
| WETH10 Bridge (CCIP) | 0xe0E93247376aa097dB308B92e6Ba36bA015535D0 |
In config/contract-addresses.conf as ADDR_CCIPWETH10_BRIDGE. |
So the intended wrapped-native (WETH9-equivalent) address on Chain 138 is 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2. The explorer is correct to show it; the chain is not “mainnet” but uses that address by design.
5. EIP-1559 (baseFeePerGas)
- Yes. The chain uses EIP-1559; blocks include baseFeePerGas.
- Deployment and gas scripts (e.g. in
scripts/archive/consolidated/deploy/) useeth_getBlockByNumber("latest", false)and readbaseFeePerGasfor gas pricing. - Docs state EIP-1559 is supported (e.g.
docs/11-references/DEFI_ORACLE_META_MAINNET_PROJECT_DESCRIPTION.md,docs/04-configuration/ADD_CHAIN138_TO_LEDGER_LIVE.md).
Summary table (paste-friendly)
| # | Item | Value |
|---|---|---|
| 1 | RPC URL (MetaMask) | https://rpc-http-pub.d-bis.org (WS: wss://rpc-ws-pub.d-bis.org) |
| 2 | ChainId | Decimal: 138 — Hex: 0x8a |
| 3 | Explorer backend stack | Blockscout (API on VMID 5000:4000) + custom frontend SolaceScanScout (nginx on VMID 5000) |
| 4 | Wrapped-native (WETH9) on chain | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 (same as mainnet by design) |
| 5 | EIP-1559 | Yes — baseFeePerGas present in blocks |
Optional: Backend RPC and API wiring (for “Loading…” fixes)
- Blockscout env (VMID 5000):
ETHEREUM_JSONRPC_HTTP_URL=http://192.168.11.221:8545ETHEREUM_JSONRPC_WS_URL=ws://192.168.11.221:8546ETHEREUM_JSONRPC_VARIANT=besuCHAIN_ID=138
- Frontend: Calls
/api(same origin when onhttps://explorer.d-bis.org); nginx proxies/apito Blockscout on port 4000. - TRACE API: Enabled on the public RPC node (VMID 2201) so Blockscout can index internal transactions and block rewards (see
explorer-monorepo/docs/RPC_FUNCTIONALITY_AND_BLOCKSCOUT_TRACE.md).
You can paste the Summary table plus the Optional paragraph (if they need backend details) into your reply to get the exact explorer env/config, WETH9/WETH10/bridge wiring, and RPC checklist.
Verification: explorer vs this doc
Verification run: config and live endpoints checked against the values above.
Codebase (matches doc)
| Item | Source | Status |
|---|---|---|
| RPC URL (HTTPS/WS) | explorer-monorepo/frontend/public/explorer-spa.js |
RPC_FQDN = https://rpc-http-pub.d-bis.org, RPC_WS_FQDN = wss://rpc-ws-pub.d-bis.org, RPC_IP = http://192.168.11.221:8545 |
| ChainId | same file | CHAIN_ID = 138, MetaMask chainId: '0x8A' |
| WETH9 / WETH10 | same file | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f |
| WETH9/WETH10 bridges | same file | 0xcacfd227A040002e49e2e01626363071324f820a, 0xe0E93247376aa097dB308B92e6Ba36bA015535D0 |
| Blockscout env | scripts/run-blockscout-config-direct.sh |
ETHEREUM_JSONRPC_HTTP_URL=http://192.168.11.221:8545, CHAIN_ID=138, ETHEREUM_JSONRPC_VARIANT=besu |
| API proxy | explorer-monorepo/scripts/fix-nginx-serve-custom-frontend.sh |
location /api/ → proxy_pass http://127.0.0.1:4000 |
Live endpoints
| Check | Command / URL | Result |
|---|---|---|
| Explorer API | GET https://explorer.d-bis.org/api/v2/stats |
200; total_blocks, total_transactions, gas_prices present |
| RPC chainId | POST https://rpc-http-pub.d-bis.org eth_chainId |
"result":"0x8a" (138) |
| EIP-1559 | POST https://rpc-http-pub.d-bis.org eth_getBlockByNumber("latest", false) |
baseFeePerGas present in block (e.g. "0x7") |
Conclusion: Explorer config and live behaviour match this doc. Use the “Ready-to-send reply” section to respond to the technical review.


