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
This commit is contained in:
33
thirdweb-core-2103-test/script/Create2DeployTest.s.sol
Normal file
33
thirdweb-core-2103-test/script/Create2DeployTest.s.sol
Normal file
@@ -0,0 +1,33 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.11;
|
||||
|
||||
import "forge-std/Script.sol";
|
||||
import "forge-std/console2.sol";
|
||||
|
||||
import { Create2Factory } from "../src/Create2Factory.sol";
|
||||
import { Create2Probe } from "../src/Create2Probe.sol";
|
||||
|
||||
/// @notice Deploy Create2Factory then CREATE2-deploy Create2Probe; assert predicted == deployed.
|
||||
contract Create2DeployTest is Script {
|
||||
bytes32 constant SALT = keccak256("vmid-2103-create2-probe-v1");
|
||||
|
||||
function run() external {
|
||||
vm.startBroadcast();
|
||||
|
||||
Create2Factory factory = new Create2Factory();
|
||||
console2.log("Create2Factory", address(factory));
|
||||
|
||||
address predicted = factory.predictProbe(SALT);
|
||||
console2.log("predicted probe", predicted);
|
||||
|
||||
address deployed = factory.deployProbe(SALT);
|
||||
require(deployed == predicted, "CREATE2 address mismatch");
|
||||
console2.log("deployed probe", deployed);
|
||||
|
||||
Create2Probe probe = Create2Probe(deployed);
|
||||
require(probe.VMID_TAG() == 2103, "probe tag");
|
||||
console2.log("VMID_TAG", probe.VMID_TAG());
|
||||
|
||||
vm.stopBroadcast();
|
||||
}
|
||||
}
|
||||
36
thirdweb-core-2103-test/script/DeployThirdwebCore.s.sol
Normal file
36
thirdweb-core-2103-test/script/DeployThirdwebCore.s.sol
Normal file
@@ -0,0 +1,36 @@
|
||||
// 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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user