Files
smom-dbis-138/script/deploy/vault/DeployAcVdcSdcVaults651940.s.sol

57 lines
2.2 KiB
Solidity
Raw Normal View History

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {Script, console} from "forge-std/Script.sol";
import {VaultFactory} from "../../../contracts/vault/VaultFactory.sol";
/// @notice M1 vault basket for ALL Mainnet (651940): AUSDC, AUSDT, WALL.
contract DeployAcVdcSdcVaults651940 is Script {
uint8 constant DECIMALS = 6;
bool constant DEBT_TRANSFERABLE = true;
uint8 constant GRU_TIER_M1 = 2;
function run() external {
uint256 pk = vm.envUint("PRIVATE_KEY");
address deployer = vm.addr(pk);
address owner = vm.envOr("OWNER", deployer);
address entity = vm.envOr("ENTITY", vm.envOr("GRU_OMNL_ENTITY_ADDRESS", deployer));
address factoryAddr = vm.envAddress("VAULT_FACTORY_ADDRESS");
VaultFactory factory = VaultFactory(factoryAddr);
bytes32 ibanHash = vm.envBytes32("GRU_IBAN_HASH");
bytes32 policyProfileKey = vm.envOr("GRU_POLICY_PROFILE_KEY", bytes32(0));
address[] memory bases = new address[](3);
string[] memory labels = new string[](3);
bases[0] = vm.envAddress("CUSDC_ADDRESS_651940");
labels[0] = "AUSDC";
bases[1] = vm.envAddress("AUSDT_ADDRESS_651940");
labels[1] = "AUSDT";
bases[2] = vm.envAddress("WALL_ADDRESS_651940");
labels[2] = "WALL";
uint256 startIdx = vm.envOr("GRU_VAULT_START_INDEX", uint256(0));
uint256 endIdx = vm.envOr("GRU_VAULT_END_INDEX", bases.length);
vm.startBroadcast(pk);
for (uint256 i = startIdx; i < endIdx && i < bases.length; i++) {
(address vault, address depositToken, address debtToken) = factory.createVaultWithDecimalsGRU(
owner,
entity,
bases[i],
bases[i],
DECIMALS,
DECIMALS,
DEBT_TRANSFERABLE,
GRU_TIER_M1,
ibanHash,
policyProfileKey
);
console.log(string.concat(labels[i], " vault:"), vault);
console.log(string.concat("ac", labels[i], ":"), depositToken);
console.log(string.concat("vdc", labels[i], ":"), debtToken);
}
vm.stopBroadcast();
}
}