Files
proxmox/thirdweb-core-2103-test/README.md
defiQUG dbd517b279 Sync workspace: config, docs, scripts, CI, operator rules, and submodule pointers.
- 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
2026-04-12 06:12:20 -07:00

2.1 KiB
Raw Blame History

Thirdweb core infra — VMID 2103 test harness

Deploys Forwarder → TWRegistry → TWFactory → ContractPublisher from @thirdweb-dev/contracts against Chain 138 RPC for VMID 2103 (Thirdweb admin core).

RPC URL (FQDN default)

Canonical HTTPS JSON-RPC (NPM → VMID 2103): https://rpc.tw-core.d-bis.org
WebSocket: wss://wss.tw-core.d-bis.org (see docs/04-configuration/RPC_ENDPOINTS_MASTER.md).

E2E checks (2026-04-09): eth_chainId0x8a, eth_blockNumber OK; forge script … --rpc-url https://rpc.tw-core.d-bis.org simulation OK.

scripts/rpc-url-2103.sh (used by npm scripts and deploy-*-with-project-env.sh) defaults to that FQDN. For LAN-only HTTP to the container, set:

export RPC_THIRDWEB_ADMIN_LAN_ONLY=1
# optional: export RPC_THIRDWEB_ADMIN_CORE=192.168.11.217

Or set a full override: RPC_URL_2103 or RPC_TW_CORE_HTTP.

  • Foundry: compiles Thirdweb sources via node_modules remappings; script/DeployThirdwebCore.s.sol.
  • Hardhat: compiles only contracts/HardhatPlaceholder.sol; deploy uses ABI + bytecode from forge build (out/) to avoid an OpenZeppelin Address library name clash inside Thirdwebs dependency graph.

Commands

cd thirdweb-core-2103-test
npm install
npm run forge:build
npm run forge:dry-run

# Loads PRIVATE_KEY via parent repo load-project-env.sh; RPC defaults to https://rpc.tw-core.d-bis.org
npm run deploy:forge:project-env
npm run deploy:hh:project-env

export PRIVATE_KEY=0x...
npm run forge:deploy
npm run hh:deploy

Use --legacy --with-gas-price 1000000000 on Foundry for Besu chain minimum (see smom-dbis-138 deployment docs).

OpenZeppelin is pinned to 4.8.3 so Thirdweb 3.15 compiles (avoids _contextSuffixLength conflicts with OZ 4.9+).

CREATE2 on VMID 2103

Create2Factory + Create2Probe (src/) and script/Create2DeployTest.s.sol deploy via OpenZeppelin Create2, assert predictProbe(salt) == deployProbe(salt), and read VMID_TAG == 2103.

npm run forge:create2:dry-run
npm run deploy:create2:project-env   # needs PRIVATE_KEY via load-project-env