Files
proxmox/thirdweb-core-2103-test/script/DeployThirdwebCore.s.sol
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

37 lines
1.4 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;
import "forge-std/Script.sol";
import "forge-std/console2.sol";
import { Forwarder } from "tw/infra/forwarder/Forwarder.sol";
import { TWRegistry } from "tw/infra/TWRegistry.sol";
import { TWFactory } from "tw/infra/TWFactory.sol";
import { ContractPublisher } from "tw/infra/ContractPublisher.sol";
import { IContractPublisher } from "tw/infra/interface/IContractPublisher.sol";
/// @notice Deploys Thirdweb on-chain infra: Forwarder → TWRegistry → TWFactory → ContractPublisher.
/// @dev Intended RPC: VMID 2103 — http://192.168.11.217:8545 (chain 138). Use `--legacy --with-gas-price 1000000000`.
contract DeployThirdwebCore is Script {
function run() external {
// Use `forge script ... --private-key ... --broadcast`; tx.origin is the broadcaster.
vm.startBroadcast();
address deployer = tx.origin;
Forwarder forwarder = new Forwarder();
address tf = address(forwarder);
TWRegistry registry = new TWRegistry(tf);
TWFactory factory = new TWFactory(tf, address(registry));
ContractPublisher publisher = new ContractPublisher(deployer, tf, IContractPublisher(address(0)));
vm.stopBroadcast();
console2.log("Forwarder", address(forwarder));
console2.log("TWRegistry", address(registry));
console2.log("TWFactory", address(factory));
console2.log("ContractPublisher", address(publisher));
}
}