Skip to content
This repository was archived by the owner on Jul 20, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions script/Deploy.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,12 @@ contract DeploySwanLottery is Script {
addr = config.deploySwanLottery();
}
}

contract DeploySwanDebate is Script {
HelperConfig public config;

function run() external returns (address addr) {
config = new HelperConfig();
addr = config.deploySwanDebate();
}
}
22 changes: 22 additions & 0 deletions script/HelperConfig.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import {SwanAgentFactory} from "../src/SwanAgent.sol";
import {SwanArtifactFactory} from "../src/SwanArtifact.sol";
import {Swan} from "../src/Swan.sol";
import {SwanLottery} from "../src/SwanLottery.sol";
import {SwanDebate} from "../src/SwanDebate.sol";
import {WETH9} from "../test/contracts/WETH9.sol";

struct Stakes {
Expand Down Expand Up @@ -223,6 +224,27 @@ contract HelperConfig is Script {
return address(lottery);
}

function deploySwanDebate() external returns (address) {
// read deployed contract addresses
string memory dir = "deployments/";
string memory fileName = Strings.toString(block.chainid);
string memory path = string.concat(dir, fileName, ".json");
string memory contractAddresses = vm.readFile(path);

bool isCoordinatorExist = vm.keyExistsJson(contractAddresses, "$.LLMOracleCoordinator");
require(isCoordinatorExist, "Please deploy LLMOracleCoordinator first");

address coordinatorProxy = vm.parseJsonAddress(contractAddresses, "$.LLMOracleCoordinator.proxyAddr");
require(coordinatorProxy != address(0), "Coordinator proxy address is invalid");

vm.startBroadcast();
SwanDebate debate = new SwanDebate(coordinatorProxy);
vm.stopBroadcast();

writeContractAddress("SwanDebate", address(debate));
return address(debate);
}

function writeContractAddress(string memory name, address addr) internal {
// create a deployment file if not exist
string memory dir = "deployments/";
Expand Down
Loading
Loading