40 lines
1.4 KiB
Solidity
40 lines
1.4 KiB
Solidity
|
|
// SPDX-License-Identifier: MIT
|
||
|
|
pragma solidity ^0.8.19;
|
||
|
|
|
||
|
|
import {Script, console} from "forge-std/Script.sol";
|
||
|
|
import {CompliantUSDC} from "../contracts/tokens/CompliantUSDC.sol";
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @title DeployCompliantUSDC
|
||
|
|
* @notice Deploy CompliantUSDC token contract
|
||
|
|
*/
|
||
|
|
contract DeployCompliantUSDC is Script {
|
||
|
|
function run() external {
|
||
|
|
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
||
|
|
address deployer = vm.addr(deployerPrivateKey);
|
||
|
|
|
||
|
|
// Load environment variables
|
||
|
|
address owner = vm.envOr("USDC_OWNER", deployer);
|
||
|
|
address admin = vm.envOr("COMPLIANCE_ADMIN", deployer);
|
||
|
|
|
||
|
|
console.log("Deploying CompliantUSDC with deployer:", vm.toString(deployer));
|
||
|
|
console.log("Owner:", vm.toString(owner));
|
||
|
|
console.log("Compliance Admin:", vm.toString(admin));
|
||
|
|
|
||
|
|
vm.startBroadcast(deployerPrivateKey);
|
||
|
|
|
||
|
|
CompliantUSDC usdc = new CompliantUSDC(owner, admin);
|
||
|
|
console.log("CompliantUSDC deployed at:", vm.toString(address(usdc)));
|
||
|
|
|
||
|
|
vm.stopBroadcast();
|
||
|
|
|
||
|
|
console.log("\n=== Deployment Summary ===");
|
||
|
|
console.log("CompliantUSDC:", vm.toString(address(usdc)));
|
||
|
|
console.log("Owner:", vm.toString(owner));
|
||
|
|
console.log("Compliance Admin:", vm.toString(admin));
|
||
|
|
console.log("Initial Supply: 1,000,000 cUSDC");
|
||
|
|
console.log("Decimals: 6");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|