Files
smom-dbis-138/script/x402/DeployAtomicCwUsdcUsdcPurchase.s.sol

31 lines
1.3 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {Script, console} from "forge-std/Script.sol";
import {AtomicCwUsdcUsdcPurchase} from "../../contracts/x402/AtomicCwUsdcUsdcPurchase.sol";
contract DeployAtomicCwUsdcUsdcPurchase is Script {
address internal constant POLYGON_CWUSDC_V2 = 0x7476a64B37732698b9f729fdB373a7B65e9677e9;
address internal constant POLYGON_USDC = 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359;
function run() external returns (AtomicCwUsdcUsdcPurchase purchase) {
uint256 pk = vm.envUint("PRIVATE_KEY");
address deployer = vm.addr(pk);
address treasury = vm.envOr("X402_POLYGON_ATOMIC_TREASURY", vm.envOr("SERVER_WALLET_ADDRESS", deployer));
address owner = vm.envOr("X402_POLYGON_ATOMIC_OWNER", deployer);
console.log("Deployer:", deployer);
console.log("cWUSDC_V2:", POLYGON_CWUSDC_V2);
console.log("USDC:", POLYGON_USDC);
console.log("Treasury:", treasury);
console.log("Owner:", owner);
vm.startBroadcast(pk);
purchase = new AtomicCwUsdcUsdcPurchase(POLYGON_CWUSDC_V2, POLYGON_USDC, treasury, owner);
vm.stopBroadcast();
console.log("AtomicCwUsdcUsdcPurchase:", address(purchase));
console.log("Contract treasury:", purchase.treasury());
}
}