- 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
2.1 KiB
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_chainId → 0x8a, 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_modulesremappings;script/DeployThirdwebCore.s.sol. - Hardhat: compiles only
contracts/HardhatPlaceholder.sol; deploy uses ABI + bytecode fromforge build(out/) to avoid an OpenZeppelinAddresslibrary name clash inside Thirdweb’s 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