File size: 1,442 Bytes
93c7565 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | // SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "forge-std/Script.sol";
import {CircuitBreaker} from "../contracts/CircuitBreaker.sol";
import {AssetRegistry} from "../contracts/AssetRegistry.sol";
import {TEEVerifier} from "../contracts/TEEVerifier.sol";
/// @notice Full deployment: CircuitBreaker (MVP) + AssetRegistry + TEEVerifier.
/// @dev Required env vars:
/// PRIVATE_KEY deployer private key
/// ORACLE_ADDRESS oracle address (may be signer)
/// ENCLAVE_ADDRESS TEE public key (address form)
contract DeployFull is Script {
function run() external {
uint256 deployerPk = vm.envUint("PRIVATE_KEY");
address oracleAddress = vm.envAddress("ORACLE_ADDRESS");
address enclaveAddress = vm.envAddress("ENCLAVE_ADDRESS");
vm.startBroadcast(deployerPk);
CircuitBreaker cb = new CircuitBreaker();
cb.initialize(oracleAddress);
console.log("CircuitBreaker :", address(cb));
AssetRegistry registry = new AssetRegistry();
console.log("AssetRegistry :", address(registry));
TEEVerifier tee = new TEEVerifier(enclaveAddress, address(registry));
console.log("TEEVerifier :", address(tee));
vm.stopBroadcast();
console.log("---");
console.log("Oracle :", oracleAddress);
console.log("Enclave :", enclaveAddress);
}
}
|