dsa-governance/deployments/mainnet_1/PayloadIGP15.json
Thrilok kumar 5b7585584f fix
2024-03-23 02:26:41 -04:00

1 line
57 KiB
JSON

{"metadata":"{\"defaultCompiler\":{\"version\":\"0.7.3\"},\"sources\":{\"contracts/payloads/IGP15/PayloadIGP15.sol\":{\"content\":\"pragma solidity ^0.7.0;\\npragma experimental ABIEncoderV2;\\n\\ninterface IGovernorBravo {\\n function _acceptAdmin() external;\\n\\n function _setVotingDelay(uint newVotingDelay) external;\\n\\n function _setVotingPeriod(uint newVotingPeriod) external;\\n\\n function _acceptAdminOnTimelock() external;\\n\\n function _setImplementation(address implementation_) external;\\n\\n function propose(\\n address[] memory targets,\\n uint[] memory values,\\n string[] memory signatures,\\n bytes[] memory calldatas,\\n string memory description\\n ) external returns (uint);\\n\\n function admin() external view returns (address);\\n\\n function pendingAdmin() external view returns (address);\\n\\n function timelock() external view returns (address);\\n\\n function votingDelay() external view returns (uint256);\\n\\n function votingPeriod() external view returns (uint256);\\n}\\n\\ninterface ITimelock {\\n function acceptAdmin() external;\\n\\n function setDelay(uint delay_) external;\\n\\n function setPendingAdmin(address pendingAdmin_) external;\\n\\n function queueTransaction(\\n address target,\\n uint value,\\n string memory signature,\\n bytes memory data,\\n uint eta\\n ) external returns (bytes32);\\n\\n function executeTransaction(\\n address target,\\n uint value,\\n string memory signature,\\n bytes memory data,\\n uint eta\\n ) external payable returns (bytes memory);\\n\\n function pendingAdmin() external view returns (address);\\n\\n function admin() external view returns (address);\\n\\n function delay() external view returns (uint256);\\n}\\n\\ninterface AdminModuleStructs {\\n struct AddressBool {\\n address addr;\\n bool value;\\n }\\n\\n struct AddressUint256 {\\n address addr;\\n uint256 value;\\n }\\n\\n struct RateDataV1Params {\\n address token;\\n uint256 kink;\\n uint256 rateAtUtilizationZero;\\n uint256 rateAtUtilizationKink;\\n uint256 rateAtUtilizationMax;\\n }\\n\\n struct RateDataV2Params {\\n address token;\\n uint256 kink1;\\n uint256 kink2;\\n uint256 rateAtUtilizationZero;\\n uint256 rateAtUtilizationKink1;\\n uint256 rateAtUtilizationKink2;\\n uint256 rateAtUtilizationMax;\\n }\\n\\n struct TokenConfig {\\n address token;\\n uint256 fee;\\n uint256 threshold;\\n }\\n\\n struct UserSupplyConfig {\\n address user;\\n address token;\\n uint8 mode;\\n uint256 expandPercent;\\n uint256 expandDuration;\\n uint256 baseWithdrawalLimit;\\n }\\n\\n struct UserBorrowConfig {\\n address user;\\n address token;\\n uint8 mode;\\n uint256 expandPercent;\\n uint256 expandDuration;\\n uint256 baseDebtCeiling;\\n uint256 maxDebtCeiling;\\n }\\n}\\n\\ninterface IFluidLiquidityAdmin {\\n /// @notice adds/removes auths. Auths generally could be contracts which can have restricted actions defined on contract.\\n /// auths can be helpful in reducing governance overhead where it's not needed.\\n /// @param authsStatus_ array of structs setting allowed status for an address.\\n /// status true => add auth, false => remove auth\\n function updateAuths(\\n AdminModuleStructs.AddressBool[] calldata authsStatus_\\n ) external;\\n\\n /// @notice adds/removes guardians. Only callable by Governance.\\n /// @param guardiansStatus_ array of structs setting allowed status for an address.\\n /// status true => add guardian, false => remove guardian\\n function updateGuardians(\\n AdminModuleStructs.AddressBool[] calldata guardiansStatus_\\n ) external;\\n\\n /// @notice changes the revenue collector address (contract that is sent revenue). Only callable by Governance.\\n /// @param revenueCollector_ new revenue collector address\\n function updateRevenueCollector(address revenueCollector_) external;\\n\\n /// @notice changes current status, e.g. for pausing or unpausing all user operations. Only callable by Auths.\\n /// @param newStatus_ new status\\n /// status = 2 -> pause, status = 1 -> resume.\\n function changeStatus(uint256 newStatus_) external;\\n\\n /// @notice update tokens rate data version 1. Only callable by Auths.\\n /// @param tokensRateData_ array of RateDataV1Params with rate data to set for each token\\n function updateRateDataV1s(\\n AdminModuleStructs.RateDataV1Params[] calldata tokensRateData_\\n ) external;\\n\\n /// @notice update tokens rate data version 2. Only callable by Auths.\\n /// @param tokensRateData_ array of RateDataV2Params with rate data to set for each token\\n function updateRateDataV2s(\\n AdminModuleStructs.RateDataV2Params[] calldata tokensRateData_\\n ) external;\\n\\n /// @notice updates token configs: fee charge on borrowers interest & storage update utilization threshold.\\n /// Only callable by Auths.\\n /// @param tokenConfigs_ contains token address, fee & utilization threshold\\n function updateTokenConfigs(\\n AdminModuleStructs.TokenConfig[] calldata tokenConfigs_\\n ) external;\\n\\n /// @notice updates user classes: 0 is for new protocols, 1 is for established protocols.\\n /// Only callable by Auths.\\n /// @param userClasses_ struct array of uint256 value to assign for each user address\\n function updateUserClasses(\\n AdminModuleStructs.AddressUint256[] calldata userClasses_\\n ) external;\\n\\n /// @notice sets user supply configs per token basis. Eg: with interest or interest-free and automated limits.\\n /// Only callable by Auths.\\n /// @param userSupplyConfigs_ struct array containing user supply config, see `UserSupplyConfig` struct for more info\\n function updateUserSupplyConfigs(\\n AdminModuleStructs.UserSupplyConfig[] memory userSupplyConfigs_\\n ) external;\\n\\n /// @notice setting user borrow configs per token basis. Eg: with interest or interest-free and automated limits.\\n /// Only callable by Auths.\\n /// @param userBorrowConfigs_ struct array containing user borrow config, see `UserBorrowConfig` struct for more info\\n function updateUserBorrowConfigs(\\n AdminModuleStructs.UserBorrowConfig[] memory userBorrowConfigs_\\n ) external;\\n\\n /// @notice pause operations for a particular user in class 0 (class 1 users can't be paused by guardians).\\n /// Only callable by Guardians.\\n /// @param user_ address of user to pause operations for\\n /// @param supplyTokens_ token addresses to pause withdrawals for\\n /// @param borrowTokens_ token addresses to pause borrowings for\\n function pauseUser(\\n address user_,\\n address[] calldata supplyTokens_,\\n address[] calldata borrowTokens_\\n ) external;\\n\\n /// @notice unpause operations for a particular user in class 0 (class 1 users can't be paused by guardians).\\n /// Only callable by Guardians.\\n /// @param user_ address of user to unpause operations for\\n /// @param supplyTokens_ token addresses to unpause withdrawals for\\n /// @param borrowTokens_ token addresses to unpause borrowings for\\n function unpauseUser(\\n address user_,\\n address[] calldata supplyTokens_,\\n address[] calldata borrowTokens_\\n ) external;\\n\\n /// @notice collects revenue for tokens to configured revenueCollector address.\\n /// @param tokens_ array of tokens to collect revenue for\\n /// @dev Note that this can revert if token balance is < revenueAmount (utilization > 100%)\\n function collectRevenue(address[] calldata tokens_) external;\\n\\n /// @notice gets the current updated exchange prices for n tokens and updates all prices, rates related data in storage.\\n /// @param tokens_ tokens to update exchange prices for\\n /// @return supplyExchangePrices_ new supply rates of overall system for each token\\n /// @return borrowExchangePrices_ new borrow rates of overall system for each token\\n function updateExchangePrices(\\n address[] calldata tokens_\\n )\\n external\\n returns (\\n uint256[] memory supplyExchangePrices_,\\n uint256[] memory borrowExchangePrices_\\n );\\n}\\n\\ninterface IFluidVaultT1Factory {\\n function deployVault(\\n address vaultDeploymentLogic_,\\n bytes calldata vaultDeploymentData_\\n ) external returns (address vault_);\\n\\n function setVaultAuth(\\n address vault_,\\n address vaultAuth_,\\n bool allowed_\\n ) external;\\n}\\n\\ninterface IFluidVaultT1DeploymentLogic {\\n function vaultT1(address supplyToken_, address borrowToken_) external;\\n}\\n\\ninterface IFluidVaultT1 {\\n /// @notice updates the Vault oracle to `newOracle_`. Must implement the FluidOracle interface.\\n function updateOracle(address newOracle_) external;\\n\\n /// @notice updates the all Vault core settings according to input params.\\n /// All input values are expected in 1e2 (1% = 100, 100% = 10_000).\\n function updateCoreSettings(\\n uint256 supplyRateMagnifier_,\\n uint256 borrowRateMagnifier_,\\n uint256 collateralFactor_,\\n uint256 liquidationThreshold_,\\n uint256 liquidationMaxLimit_,\\n uint256 withdrawGap_,\\n uint256 liquidationPenalty_,\\n uint256 borrowFee_\\n ) external;\\n\\n /// @notice updates the allowed rebalancer to `newRebalancer_`.\\n function updateRebalancer(address newRebalancer_) external;\\n\\n /// @notice updates the supply rate magnifier to `supplyRateMagnifier_`. Input in 1e2 (1% = 100, 100% = 10_000).\\n function updateSupplyRateMagnifier(uint supplyRateMagnifier_) external;\\n\\n /// @notice updates the collateral factor to `collateralFactor_`. Input in 1e2 (1% = 100, 100% = 10_000).\\n function updateCollateralFactor(uint collateralFactor_) external;\\n}\\n\\ninterface IFTokenAdmin {\\n /// @notice updates the rewards rate model contract.\\n /// Only callable by LendingFactory auths.\\n /// @param rewardsRateModel_ the new rewards rate model contract address.\\n /// can be set to address(0) to set no rewards (to save gas)\\n function updateRewards(address rewardsRateModel_) external;\\n\\n /// @notice Balances out the difference between fToken supply at Liquidity vs totalAssets().\\n /// Deposits underlying from rebalancer address into Liquidity but doesn't mint any shares\\n /// -> thus making deposit available as rewards.\\n /// Only callable by rebalancer.\\n /// @return assets_ amount deposited to Liquidity\\n function rebalance() external payable returns (uint256 assets_);\\n\\n /// @notice gets the liquidity exchange price of the underlying asset, calculates the updated exchange price (with reward rates)\\n /// and writes those values to storage.\\n /// Callable by anyone.\\n /// @return tokenExchangePrice_ exchange price of fToken share to underlying asset\\n /// @return liquidityExchangePrice_ exchange price at Liquidity for the underlying asset\\n function updateRates()\\n external\\n returns (uint256 tokenExchangePrice_, uint256 liquidityExchangePrice_);\\n\\n /// @notice sends any potentially stuck funds to Liquidity contract. Only callable by LendingFactory auths.\\n function rescueFunds(address token_) external;\\n\\n /// @notice Updates the rebalancer address (ReserveContract). Only callable by LendingFactory auths.\\n function updateRebalancer(address rebalancer_) external;\\n}\\n\\ncontract PayloadIGP15 {\\n uint256 public constant PROPOSAL_ID = 15;\\n\\n address public constant PROPOSER =\\n 0xA45f7bD6A5Ff45D31aaCE6bCD3d426D9328cea01;\\n\\n address public constant PROPOSER_AVO_MULTISIG =\\n 0x059A94A72951c0ae1cc1CE3BF0dB52421bbE8210;\\n\\n IGovernorBravo public constant GOVERNOR =\\n IGovernorBravo(0x0204Cd037B2ec03605CFdFe482D8e257C765fA1B);\\n ITimelock public immutable TIMELOCK =\\n ITimelock(0x2386DC45AdDed673317eF068992F19421B481F4c);\\n\\n address public immutable ADDRESS_THIS;\\n\\n address public constant TEAM_MULTISIG =\\n 0x4F6F977aCDD1177DCD81aB83074855EcB9C2D49e;\\n\\n IFluidLiquidityAdmin public constant LIQUIDITY =\\n IFluidLiquidityAdmin(0x52Aa899454998Be5b000Ad077a46Bbe360F4e497);\\n IFluidVaultT1Factory public constant VAULT_T1_FACTORY =\\n IFluidVaultT1Factory(0x324c5Dc1fC42c7a4D43d92df1eBA58a54d13Bf2d);\\n IFluidVaultT1DeploymentLogic public constant VAULT_T1_DEPLOYMENT_LOGIC =\\n IFluidVaultT1DeploymentLogic(\\n 0x15f6F562Ae136240AB9F4905cb50aCA54bCbEb5F\\n );\\n\\n address public constant F_USDT = 0x5C20B550819128074FD538Edf79791733ccEdd18;\\n address public constant F_USDC = 0x9Fb7b4477576Fe5B32be4C1843aFB1e55F251B33;\\n\\n address public constant sUSDe_ADDRESS =\\n 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497;\\n address public constant USDC_ADDRESS =\\n 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;\\n address public constant USDT_ADDRESS =\\n 0xdAC17F958D2ee523a2206206994597C13D831ec7;\\n\\n constructor() {\\n ADDRESS_THIS = address(this);\\n }\\n\\n function propose(string memory description) external {\\n require(\\n msg.sender == PROPOSER ||\\n msg.sender == TEAM_MULTISIG ||\\n address(this) == PROPOSER_AVO_MULTISIG,\\n \\\"msg.sender-not-allowed\\\"\\n );\\n\\n uint256 totalActions = 1;\\n address[] memory targets = new address[](totalActions);\\n uint256[] memory values = new uint256[](totalActions);\\n string[] memory signatures = new string[](totalActions);\\n bytes[] memory calldatas = new bytes[](totalActions);\\n\\n // Action 1: call executePayload on timelock contract to execute payload related to Fluid\\n targets[0] = address(TIMELOCK);\\n values[0] = 0;\\n signatures[0] = \\\"executePayload(address,string,bytes)\\\";\\n calldatas[0] = abi.encode(ADDRESS_THIS, \\\"execute()\\\", abi.encode());\\n\\n uint256 proposedId = GOVERNOR.propose(\\n targets,\\n values,\\n signatures,\\n calldatas,\\n description\\n );\\n\\n require(proposedId == PROPOSAL_ID, \\\"PROPOSAL_IS_NOT_SAME\\\");\\n }\\n\\n function execute() external {\\n require(address(this) == address(TIMELOCK), \\\"not-valid-caller\\\");\\n\\n // Action 1: Set market rates for sUSDe on Liquidity.\\n action1();\\n\\n // Action 2: Set token config for sUSDe on Liquidity.\\n action2();\\n\\n // Action 3: Deploy sUSDe/USDC vault and set related configs.\\n action3();\\n\\n // Action 4: Deploy sUSDe/USDT vault and set related configs.\\n action4();\\n\\n // Action 5: Update market rates for USDC.\\n action5();\\n\\n // Action 6: Update market rates for USDT.\\n action6();\\n\\n // Action 7: Update reward rates for USDC.\\n action7();\\n\\n // Action 8: Update reward rates for USDT.\\n action8();\\n }\\n\\n function verifyProposal() external view {}\\n\\n /***********************************|\\n | Proposal Payload Actions |\\n |__________________________________*/\\n\\n /// @notice Action 1: Set market rates for sUSDe on Liquidity.\\n function action1() internal {\\n AdminModuleStructs.RateDataV2Params[]\\n memory params_ = new AdminModuleStructs.RateDataV2Params[](1);\\n\\n params_[0] = AdminModuleStructs.RateDataV2Params({\\n token: sUSDe_ADDRESS, // sUSDe\\n kink1: 50 * 1e2, // 50%\\n kink2: 80 * 1e2, // 80%\\n rateAtUtilizationZero: 0, // 0%\\n rateAtUtilizationKink1: 20 * 1e2, // 20%\\n rateAtUtilizationKink2: 40 * 1e2, // 40%\\n rateAtUtilizationMax: 100 * 1e2 // 100%\\n });\\n\\n LIQUIDITY.updateRateDataV2s(params_);\\n }\\n\\n /// @notice Action 2: Set token config for sUSDe on Liquidity.\\n function action2() internal {\\n AdminModuleStructs.TokenConfig[]\\n memory params_ = new AdminModuleStructs.TokenConfig[](1);\\n\\n params_[0] = AdminModuleStructs.TokenConfig({\\n token: sUSDe_ADDRESS, // sUSDe\\n threshold: 0.3 * 1e2, // 0.3\\n fee: 10 * 1e2 // 10%\\n });\\n\\n LIQUIDITY.updateTokenConfigs(params_);\\n }\\n\\n /// @notice Action 3: Deploy sUSDe/USDC vault and set related configs.\\n function action3() internal {\\n deploy_sUSDe_USDC_VAULT();\\n }\\n\\n /// @notice Action 4: Deploy sUSDe/USDT vault and set related configs.\\n function action4() internal {\\n deploy_sUSDe_USDT_VAULT();\\n }\\n\\n /// @notice Action 5: Update market rates for USDC.\\n function action5() internal {\\n AdminModuleStructs.RateDataV2Params[]\\n memory params_ = new AdminModuleStructs.RateDataV2Params[](1);\\n\\n params_[0] = AdminModuleStructs.RateDataV2Params({\\n token: USDC_ADDRESS, // USDC\\n kink1: 80 * 1e2, // 80%\\n kink2: 93 * 1e2, // 93%\\n rateAtUtilizationZero: 0, // 0%\\n rateAtUtilizationKink1: 10 * 1e2, // 10%\\n rateAtUtilizationKink2: 15 * 1e2, // 15%\\n rateAtUtilizationMax: 25 * 1e2 // 25%\\n });\\n\\n LIQUIDITY.updateRateDataV2s(params_);\\n }\\n\\n /// @notice Action 6: Update market rates for USDT.\\n function action6() internal {\\n AdminModuleStructs.RateDataV2Params[]\\n memory params_ = new AdminModuleStructs.RateDataV2Params[](1);\\n\\n params_[0] = AdminModuleStructs.RateDataV2Params({\\n token: USDT_ADDRESS, // USDT\\n kink1: 80 * 1e2, // 80%\\n kink2: 93 * 1e2, // 93%\\n rateAtUtilizationZero: 0, // 0%\\n rateAtUtilizationKink1: 10 * 1e2, // 10%\\n rateAtUtilizationKink2: 15 * 1e2, // 15%\\n rateAtUtilizationMax: 25 * 1e2 // 25%\\n });\\n\\n LIQUIDITY.updateRateDataV2s(params_);\\n }\\n\\n /// @notice Action 7: Update rewards for fUSDC.\\n function action7() internal {\\n IFTokenAdmin(F_USDC).updateRewards(\\n 0x6CC89782495A2162b2A4f5b206E2A06Dc8675090\\n );\\n }\\n\\n /// @notice Action 8: Update rewards for fUSDT.\\n function action8() internal {\\n IFTokenAdmin(F_USDT).updateRewards(\\n 0x6CC89782495A2162b2A4f5b206E2A06Dc8675090\\n );\\n }\\n\\n /***********************************|\\n | Vault Deployment Helper |\\n |__________________________________*/\\n function deploy_sUSDe_USDC_VAULT() internal {\\n // Deploy sUSDe/USDC vault.\\n address vault_ = VAULT_T1_FACTORY.deployVault(\\n address(VAULT_T1_DEPLOYMENT_LOGIC),\\n abi.encodeWithSelector(\\n IFluidVaultT1DeploymentLogic.vaultT1.selector,\\n sUSDe_ADDRESS, // sUSDe,\\n USDC_ADDRESS // USDC\\n )\\n );\\n\\n // Set user supply config for the vault on Liquidity Layer.\\n {\\n AdminModuleStructs.UserSupplyConfig[]\\n memory configs_ = new AdminModuleStructs.UserSupplyConfig[](1);\\n\\n configs_[0] = AdminModuleStructs.UserSupplyConfig({\\n user: address(vault_),\\n token: sUSDe_ADDRESS,\\n mode: 1,\\n expandPercent: 25 * 1e2, // 25%\\n expandDuration: 12 hours,\\n baseWithdrawalLimit: 7_500_000 * 1e18 // 7.5M\\n });\\n\\n LIQUIDITY.updateUserSupplyConfigs(configs_);\\n }\\n\\n // Set user borrow config for the vault on Liquidity Layer.\\n {\\n AdminModuleStructs.UserBorrowConfig[]\\n memory configs_ = new AdminModuleStructs.UserBorrowConfig[](1);\\n\\n configs_[0] = AdminModuleStructs.UserBorrowConfig({\\n user: address(vault_),\\n token: USDC_ADDRESS,\\n mode: 1,\\n expandPercent: 20 * 1e2, // 20%\\n expandDuration: 12 hours,\\n baseDebtCeiling: 7_500_000 * 1e6, // 7.5M\\n maxDebtCeiling: 20_000_000 * 1e6 // 20M\\n });\\n\\n LIQUIDITY.updateUserBorrowConfigs(configs_);\\n }\\n\\n // Update core settings on sUSDe/USDC vault.\\n {\\n IFluidVaultT1(vault_).updateCoreSettings(\\n 100 * 1e2, // 1x supplyRateMagnifier\\n 100 * 1e2, // 1x borrowRateMagnifier\\n 88 * 1e2, // 88% collateralFactor\\n 90 * 1e2, // 90% liquidationThreshold\\n 95 * 1e2, // 95% liquidationMaxLimit\\n 5 * 1e2, // 5% withdrawGap\\n 2 * 1e2, // 2% liquidationPenalty\\n 0 // 0% borrowFee\\n );\\n }\\n\\n // Update oracle on sUSDe/USDC vault.\\n {\\n IFluidVaultT1(vault_).updateOracle(\\n 0x7779EC4694752A118580cc8ad28B9A11F7e3bB12\\n );\\n }\\n\\n // Update rebalancer on sUSDe/USDC vault.\\n {\\n IFluidVaultT1(vault_).updateRebalancer(\\n 0x264786EF916af64a1DB19F513F24a3681734ce92\\n );\\n }\\n\\n // Set Config hander as auth on vault factory for sUSDe/USDC vault.\\n {\\n VAULT_T1_FACTORY.setVaultAuth(\\n vault_,\\n 0x36639DAd77eC858574aaF07a68bBa62b7db19FfA,\\n true\\n );\\n }\\n }\\n\\n function deploy_sUSDe_USDT_VAULT() internal {\\n // Deploy sUSDe/USDT vault.\\n address vault_ = VAULT_T1_FACTORY.deployVault(\\n address(VAULT_T1_DEPLOYMENT_LOGIC),\\n abi.encodeWithSelector(\\n IFluidVaultT1DeploymentLogic.vaultT1.selector,\\n sUSDe_ADDRESS, // sUSDe,\\n USDT_ADDRESS // USDT\\n )\\n );\\n\\n // Set user supply config for the vault on Liquidity Layer.\\n {\\n AdminModuleStructs.UserSupplyConfig[]\\n memory configs_ = new AdminModuleStructs.UserSupplyConfig[](1);\\n\\n configs_[0] = AdminModuleStructs.UserSupplyConfig({\\n user: address(vault_),\\n token: sUSDe_ADDRESS,\\n mode: 1,\\n expandPercent: 25 * 1e2, // 25%\\n expandDuration: 12 hours,\\n baseWithdrawalLimit: 7_500_000 * 1e18 // 7.5M\\n });\\n\\n LIQUIDITY.updateUserSupplyConfigs(configs_);\\n }\\n\\n // Set user borrow config for the vault on Liquidity Layer.\\n {\\n AdminModuleStructs.UserBorrowConfig[]\\n memory configs_ = new AdminModuleStructs.UserBorrowConfig[](1);\\n\\n configs_[0] = AdminModuleStructs.UserBorrowConfig({\\n user: address(vault_),\\n token: USDT_ADDRESS,\\n mode: 1,\\n expandPercent: 20 * 1e2, // 20%\\n expandDuration: 12 hours,\\n baseDebtCeiling: 7_500_000 * 1e6, // 7.5M\\n maxDebtCeiling: 20_000_000 * 1e6 // 20M\\n });\\n\\n LIQUIDITY.updateUserBorrowConfigs(configs_);\\n }\\n\\n // Update core settings on sUSDe/USDT vault.\\n {\\n IFluidVaultT1(vault_).updateCoreSettings(\\n 100 * 1e2, // 1x supplyRateMagnifier\\n 100 * 1e2, // 1x borrowRateMagnifier\\n 88 * 1e2, // 88% collateralFactor\\n 90 * 1e2, // 90% liquidationThreshold\\n 95 * 1e2, // 95% liquidationMaxLimit\\n 5 * 1e2, // 5% withdrawGap\\n 2 * 1e2, // 2% liquidationPenalty\\n 0 // 0% borrowFee\\n );\\n }\\n\\n // Update oracle on sUSDe/USDT vault.\\n {\\n IFluidVaultT1(vault_).updateOracle(\\n 0x7779EC4694752A118580cc8ad28B9A11F7e3bB12\\n );\\n }\\n\\n // Update rebalancer on sUSDe/USDT vault.\\n {\\n IFluidVaultT1(vault_).updateRebalancer(\\n 0x264786EF916af64a1DB19F513F24a3681734ce92\\n );\\n }\\n\\n // Set Config hander as auth on vault factory for sUSDe/USDT vault.\\n {\\n VAULT_T1_FACTORY.setVaultAuth(\\n vault_,\\n 0xafE3974f4916140a093F1de7Fc064A3Da220DD41,\\n true\\n );\\n }\\n }\\n}\\n\",\"versionPragma\":\"^0.7.0\"}}}","address":"0x8fc50bF713be6B8e7b19C687d60fC26EedA0FE48","bytecode":"0x60c06040527f2386dc45added673317ef068992f19421b481f4c00000000000000000000000060805234801561003457600080fd5b5030606081811b60a052608051901c90611ca96100706000398061055052806106d752508061021b52806102bd52806104a15250611ca96000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638a1c7364116100a2578063bb09d9b711610071578063bb09d9b7146101b3578063bffa7f0f146101bb578063c1892058146101c3578063cc025f7c146101cb578063dca95fbf146101d357610116565b80638a1c736414610188578063aa98df3914610190578063aae7ae07146101a3578063b788f3a1146101ab57610116565b806366760d7d116100e957806366760d7d146101605780636dc0ae22146101685780637aadef8b146101705780637e2f35fa1461017857806383ba27d81461018057610116565b80630bc9136e1461011b5780632861c7d114610139578063474585e21461014e5780636146195414610156575b600080fd5b6101236101db565b6040516101309190611c46565b60405180910390f35b6101416101e0565b604051610130919061184c565b6101416101f8565b61015e610210565b005b61015e6102a1565b6101416102a3565b6101416102bb565b6101416102df565b6101416102f7565b61014161030f565b61015e61019e36600461167b565b610327565b61014161065d565b610141610675565b61014161068d565b6101416106a5565b6101416106bd565b6101416106d5565b6101416106f9565b600f81565b7352aa899454998be5b000ad077a46bbe360f4e49781565b7315f6f562ae136240ab9f4905cb50aca54bcbeb5f81565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102615760405162461bcd60e51b815260040161025890611c1c565b60405180910390fd5b610269610711565b610271610824565b6102796108e2565b6102816108ea565b6102896108f2565b61029161098e565b610299610a2a565b6102a1610aa9565b565b730204cd037b2ec03605cfdfe482d8e257c765fa1b81565b7f000000000000000000000000000000000000000000000000000000000000000081565b73059a94a72951c0ae1cc1ce3bf0db52421bbe821081565b739fb7b4477576fe5b32be4c1843afb1e55f251b3381565b73324c5dc1fc42c7a4d43d92df1eba58a54d13bf2d81565b3373a45f7bd6a5ff45d31aace6bcd3d426d9328cea01148061035c575033734f6f977acdd1177dcd81ab83074855ecb9c2d49e145b8061037a57503073059a94a72951c0ae1cc1ce3bf0db52421bbe8210145b6103965760405162461bcd60e51b815260040161025890611bbe565b604080516001808252818301909252606090826020808301908036833701905050905060608267ffffffffffffffff811180156103d257600080fd5b506040519080825280602002602001820160405280156103fc578160200160208202803683370190505b50905060608367ffffffffffffffff8111801561041857600080fd5b5060405190808252806020026020018201604052801561044c57816020015b60608152602001906001900390816104375790505b50905060608467ffffffffffffffff8111801561046857600080fd5b5060405190808252806020026020018201604052801561049c57816020015b60608152602001906001900390816104875790505b5090507f0000000000000000000000000000000000000000000000000000000000000000846000815181106104cd57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506000836000815181106104fc57fe5b602002602001018181525050604051806060016040528060248152602001611c50602491398260008151811061052e57fe5b60209081029190910181019190915260408051600081529182018152610577917f00000000000000000000000000000000000000000000000000000000000000009181016118ca565b6040516020818303038152906040528160008151811061059357fe5b6020908102919091010152604051636d4ab48d60e11b8152600090730204cd037b2ec03605cfdfe482d8e257c765fa1b9063da95691a906105e09088908890889088908e9060040161190b565b602060405180830381600087803b1580156105fa57600080fd5b505af115801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190611710565b9050600f81146106545760405162461bcd60e51b815260040161025890611bee565b50505050505050565b735c20b550819128074fd538edf79791733ccedd1881565b734f6f977acdd1177dcd81ab83074855ecb9c2d49e81565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b73a45f7bd6a5ff45d31aace6bcd3d426d9328cea0181565b73dac17f958d2ee523a2206206994597c13d831ec781565b7f000000000000000000000000000000000000000000000000000000000000000081565b739d39a5de30e57443bff2a8307a4256c8797a349781565b604080516001808252818301909252606091816020015b610730611540565b8152602001906001900390816107285790505090506040518060e00160405280739d39a5de30e57443bff2a8307a4256c8797a34976001600160a01b031681526020016113888152602001611f408152602001600081526020016107d08152602001610fa08152602001612710815250816000815181106107ad57fe5b6020908102919091010152604051639dde597760e01b81527352aa899454998be5b000ad077a46bbe360f4e49790639dde5977906107ef9084906004016119aa565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b5050505050565b604080516001808252818301909252606091816020015b610843611586565b81526020019060019003908161083b5790505090506040518060600160405280739d39a5de30e57443bff2a8307a4256c8797a34976001600160a01b031681526020016103e88152602001601e815250816000815181106108a057fe5b60209081029190910101526040516338b7e8e760e01b81527352aa899454998be5b000ad077a46bbe360f4e497906338b7e8e7906107ef908490600401611a35565b6102a1610af4565b6102a161101a565b604080516001808252818301909252606091816020015b610911611540565b8152602001906001900390816109095790505090506040518060e0016040528073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b03168152602001611f4081526020016124548152602001600081526020016103e881526020016105dc81526020016109c4815250816000815181106107ad57fe5b604080516001808252818301909252606091816020015b6109ad611540565b8152602001906001900390816109a55790505090506040518060e0016040528073dac17f958d2ee523a2206206994597c13d831ec76001600160a01b03168152602001611f4081526020016124548152602001600081526020016103e881526020016105dc81526020016109c4815250816000815181106107ad57fe5b604051635fd6196560e01b8152739fb7b4477576fe5b32be4c1843afb1e55f251b3390635fd6196590610a7590736cc89782495a2162b2a4f5b206e2a06dc86750909060040161184c565b600060405180830381600087803b158015610a8f57600080fd5b505af1158015610aa3573d6000803e3d6000fd5b50505050565b604051635fd6196560e01b8152735c20b550819128074fd538edf79791733ccedd1890635fd6196590610a7590736cc89782495a2162b2a4f5b206e2a06dc86750909060040161184c565b600073324c5dc1fc42c7a4d43d92df1eba58a54d13bf2d6001600160a01b031663968cbade7315f6f562ae136240ab9f4905cb50aca54bcbeb5f63f9f872f560e01b739d39a5de30e57443bff2a8307a4256c8797a349773a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48604051602401610b71929190611860565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e085901b9092168252610bb7929160040161189e565b602060405180830381600087803b158015610bd157600080fd5b505af1158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c09919061164d565b60408051600180825281830190925291925060609190816020015b610c2c6115b0565b815260200190600190039081610c245790505090506040518060c00160405280836001600160a01b03168152602001739d39a5de30e57443bff2a8307a4256c8797a34976001600160a01b03168152602001600160ff1681526020016109c4815260200161a8c081526020016a06342fd08f00f63780000081525081600081518110610cb457fe5b60209081029190910101526040516301635db560e11b81527352aa899454998be5b000ad077a46bbe360f4e497906302c6bb6a90610cf6908490600401611b0e565b600060405180830381600087803b158015610d1057600080fd5b505af1158015610d24573d6000803e3d6000fd5b50505050506060600167ffffffffffffffff81118015610d4357600080fd5b50604051908082528060200260200182016040528015610d7d57816020015b610d6a6115fb565b815260200190600190039081610d625790505b5090506040518060e00160405280836001600160a01b0316815260200173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b03168152602001600160ff1681526020016107d0815260200161a8c081526020016506d23ad5f80081526020016512309ce5400081525081600081518110610dfa57fe5b602090810291909101015260405162dc47c360e11b81527352aa899454998be5b000ad077a46bbe360f4e497906301b88f8690610e3b908490600401611a8a565b600060405180830381600087803b158015610e5557600080fd5b505af1158015610e69573d6000803e3d6000fd5b50506040516354b04ef560e01b81526001600160a01b03851693506354b04ef59250610eb49150612710908190612260906123289061251c906101f49060c890600090600401611b88565b600060405180830381600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b505060405163072d137f60e21b81526001600160a01b0384169250631cb44dfc9150610f2690737779ec4694752a118580cc8ad28b9a11f7e3bb129060040161184c565b600060405180830381600087803b158015610f4057600080fd5b505af1158015610f54573d6000803e3d6000fd5b505060405163b046a44960e01b81526001600160a01b038416925063b046a4499150610f989073264786ef916af64a1db19f513f24a3681734ce929060040161184c565b600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050604051637faa1d2160e01b815273324c5dc1fc42c7a4d43d92df1eba58a54d13bf2d9250637faa1d2191506107ef9084907336639dad77ec858574aaf07a68bba62b7db19ffa9060019060040161187a565b600073324c5dc1fc42c7a4d43d92df1eba58a54d13bf2d6001600160a01b031663968cbade7315f6f562ae136240ab9f4905cb50aca54bcbeb5f63f9f872f560e01b739d39a5de30e57443bff2a8307a4256c8797a349773dac17f958d2ee523a2206206994597c13d831ec7604051602401611097929190611860565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e085901b90921682526110dd929160040161189e565b602060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112f919061164d565b60408051600180825281830190925291925060609190816020015b6111526115b0565b81526020019060019003908161114a5790505090506040518060c00160405280836001600160a01b03168152602001739d39a5de30e57443bff2a8307a4256c8797a34976001600160a01b03168152602001600160ff1681526020016109c4815260200161a8c081526020016a06342fd08f00f637800000815250816000815181106111da57fe5b60209081029190910101526040516301635db560e11b81527352aa899454998be5b000ad077a46bbe360f4e497906302c6bb6a9061121c908490600401611b0e565b600060405180830381600087803b15801561123657600080fd5b505af115801561124a573d6000803e3d6000fd5b50505050506060600167ffffffffffffffff8111801561126957600080fd5b506040519080825280602002602001820160405280156112a357816020015b6112906115fb565b8152602001906001900390816112885790505b5090506040518060e00160405280836001600160a01b0316815260200173dac17f958d2ee523a2206206994597c13d831ec76001600160a01b03168152602001600160ff1681526020016107d0815260200161a8c081526020016506d23ad5f80081526020016512309ce540008152508160008151811061132057fe5b602090810291909101015260405162dc47c360e11b81527352aa899454998be5b000ad077a46bbe360f4e497906301b88f8690611361908490600401611a8a565b600060405180830381600087803b15801561137b57600080fd5b505af115801561138f573d6000803e3d6000fd5b50506040516354b04ef560e01b81526001600160a01b03851693506354b04ef592506113da9150612710908190612260906123289061251c906101f49060c890600090600401611b88565b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505060405163072d137f60e21b81526001600160a01b0384169250631cb44dfc915061144c90737779ec4694752a118580cc8ad28b9a11f7e3bb129060040161184c565b600060405180830381600087803b15801561146657600080fd5b505af115801561147a573d6000803e3d6000fd5b505060405163b046a44960e01b81526001600160a01b038416925063b046a44991506114be9073264786ef916af64a1db19f513f24a3681734ce929060040161184c565b600060405180830381600087803b1580156114d857600080fd5b505af11580156114ec573d6000803e3d6000fd5b5050604051637faa1d2160e01b815273324c5dc1fc42c7a4d43d92df1eba58a54d13bf2d9250637faa1d2191506107ef90849073afe3974f4916140a093f1de7fc064a3da220dd419060019060040161187a565b6040518060e0016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600060ff1681526020016000815260200160008152602001600081525090565b6040518060e0016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600060ff168152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561165e578081fd5b81516001600160a01b0381168114611674578182fd5b9392505050565b6000602080838503121561168d578182fd5b823567ffffffffffffffff808211156116a4578384fd5b818501915085601f8301126116b7578384fd5b8135818111156116c357fe5b604051601f8201601f19168101850183811182821017156116e057fe5b60405281815283820185018810156116f6578586fd5b818585018683013790810190930193909352509392505050565b600060208284031215611721578081fd5b5051919050565b60008282518085526020808601955080818302840101818601855b8481101561177157601f1986840301895261175f838351611801565b98840198925090830190600101611743565b5090979650505050505050565b60008282518085526020808601955080818302840101818601855b8481101561177157601f198684030189526117b5838351611801565b98840198925090830190600101611799565b6000815180845260208085019450808401835b838110156117f6578151875295820195908201906001016117da565b509495945050505050565b60008151808452815b818110156118265760208185018101518683018201520161180a565b818111156118375782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152901515604082015260600190565b6001600160a01b03831681526040602082018190526000906118c290830184611801565b949350505050565b600060018060a01b038416825260606020830152600960608301526865786563757465282960b81b608083015260a060408301526118c260a0830184611801565b60a0808252865190820181905260009060209060c0840190828a01845b8281101561194d5781516001600160a01b031684529284019290840190600101611928565b5050508381038285015261196181896117c7565b9150508281036040840152611976818761177e565b9050828103606084015261198a8186611728565b9050828103608084015261199e8185611801565b98975050505050505050565b602080825282518282018190526000919060409081850190868401855b82811015611a2857815180516001600160a01b0316855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201519086015260c0908101519085015260e090930192908501906001016119c7565b5091979650505050505050565b602080825282518282018190526000919060409081850190868401855b82811015611a2857815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101611a52565b602080825282518282018190526000919060409081850190868401855b82811015611a2857815180516001600160a01b0390811686528782015116878601528581015160ff1686860152606080820151908601526080808201519086015260a0808201519086015260c0908101519085015260e09093019290850190600101611aa7565b602080825282518282018190526000919060409081850190868401855b82811015611a2857815180516001600160a01b0390811686528782015116878601528581015160ff1686860152606080820151908601526080808201519086015260a0908101519085015260c09093019290850190600101611b2b565b978852602088019690965260408701949094526060860192909252608085015260a084015260c083015260e08201526101000190565b6020808252601690820152751b5cd9cb9cd95b99195c8b5b9bdd0b585b1b1bddd95960521b604082015260600190565b60208082526014908201527350524f504f53414c5f49535f4e4f545f53414d4560601b604082015260600190565b60208082526010908201526f3737ba16bb30b634b216b1b0b63632b960811b604082015260600190565b9081526020019056fe657865637574655061796c6f616428616464726573732c737472696e672c627974657329a2646970667358221220a407bf8ff62a0c169f80d10df51a9d121add376da420b7887714e0680665a73f64736f6c63430007030033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101165760003560e01c80638a1c7364116100a2578063bb09d9b711610071578063bb09d9b7146101b3578063bffa7f0f146101bb578063c1892058146101c3578063cc025f7c146101cb578063dca95fbf146101d357610116565b80638a1c736414610188578063aa98df3914610190578063aae7ae07146101a3578063b788f3a1146101ab57610116565b806366760d7d116100e957806366760d7d146101605780636dc0ae22146101685780637aadef8b146101705780637e2f35fa1461017857806383ba27d81461018057610116565b80630bc9136e1461011b5780632861c7d114610139578063474585e21461014e5780636146195414610156575b600080fd5b6101236101db565b6040516101309190611c46565b60405180910390f35b6101416101e0565b604051610130919061184c565b6101416101f8565b61015e610210565b005b61015e6102a1565b6101416102a3565b6101416102bb565b6101416102df565b6101416102f7565b61014161030f565b61015e61019e36600461167b565b610327565b61014161065d565b610141610675565b61014161068d565b6101416106a5565b6101416106bd565b6101416106d5565b6101416106f9565b600f81565b7352aa899454998be5b000ad077a46bbe360f4e49781565b7315f6f562ae136240ab9f4905cb50aca54bcbeb5f81565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102615760405162461bcd60e51b815260040161025890611c1c565b60405180910390fd5b610269610711565b610271610824565b6102796108e2565b6102816108ea565b6102896108f2565b61029161098e565b610299610a2a565b6102a1610aa9565b565b730204cd037b2ec03605cfdfe482d8e257c765fa1b81565b7f000000000000000000000000000000000000000000000000000000000000000081565b73059a94a72951c0ae1cc1ce3bf0db52421bbe821081565b739fb7b4477576fe5b32be4c1843afb1e55f251b3381565b73324c5dc1fc42c7a4d43d92df1eba58a54d13bf2d81565b3373a45f7bd6a5ff45d31aace6bcd3d426d9328cea01148061035c575033734f6f977acdd1177dcd81ab83074855ecb9c2d49e145b8061037a57503073059a94a72951c0ae1cc1ce3bf0db52421bbe8210145b6103965760405162461bcd60e51b815260040161025890611bbe565b604080516001808252818301909252606090826020808301908036833701905050905060608267ffffffffffffffff811180156103d257600080fd5b506040519080825280602002602001820160405280156103fc578160200160208202803683370190505b50905060608367ffffffffffffffff8111801561041857600080fd5b5060405190808252806020026020018201604052801561044c57816020015b60608152602001906001900390816104375790505b50905060608467ffffffffffffffff8111801561046857600080fd5b5060405190808252806020026020018201604052801561049c57816020015b60608152602001906001900390816104875790505b5090507f0000000000000000000000000000000000000000000000000000000000000000846000815181106104cd57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506000836000815181106104fc57fe5b602002602001018181525050604051806060016040528060248152602001611c50602491398260008151811061052e57fe5b60209081029190910181019190915260408051600081529182018152610577917f00000000000000000000000000000000000000000000000000000000000000009181016118ca565b6040516020818303038152906040528160008151811061059357fe5b6020908102919091010152604051636d4ab48d60e11b8152600090730204cd037b2ec03605cfdfe482d8e257c765fa1b9063da95691a906105e09088908890889088908e9060040161190b565b602060405180830381600087803b1580156105fa57600080fd5b505af115801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190611710565b9050600f81146106545760405162461bcd60e51b815260040161025890611bee565b50505050505050565b735c20b550819128074fd538edf79791733ccedd1881565b734f6f977acdd1177dcd81ab83074855ecb9c2d49e81565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b73a45f7bd6a5ff45d31aace6bcd3d426d9328cea0181565b73dac17f958d2ee523a2206206994597c13d831ec781565b7f000000000000000000000000000000000000000000000000000000000000000081565b739d39a5de30e57443bff2a8307a4256c8797a349781565b604080516001808252818301909252606091816020015b610730611540565b8152602001906001900390816107285790505090506040518060e00160405280739d39a5de30e57443bff2a8307a4256c8797a34976001600160a01b031681526020016113888152602001611f408152602001600081526020016107d08152602001610fa08152602001612710815250816000815181106107ad57fe5b6020908102919091010152604051639dde597760e01b81527352aa899454998be5b000ad077a46bbe360f4e49790639dde5977906107ef9084906004016119aa565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b5050505050565b604080516001808252818301909252606091816020015b610843611586565b81526020019060019003908161083b5790505090506040518060600160405280739d39a5de30e57443bff2a8307a4256c8797a34976001600160a01b031681526020016103e88152602001601e815250816000815181106108a057fe5b60209081029190910101526040516338b7e8e760e01b81527352aa899454998be5b000ad077a46bbe360f4e497906338b7e8e7906107ef908490600401611a35565b6102a1610af4565b6102a161101a565b604080516001808252818301909252606091816020015b610911611540565b8152602001906001900390816109095790505090506040518060e0016040528073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b03168152602001611f4081526020016124548152602001600081526020016103e881526020016105dc81526020016109c4815250816000815181106107ad57fe5b604080516001808252818301909252606091816020015b6109ad611540565b8152602001906001900390816109a55790505090506040518060e0016040528073dac17f958d2ee523a2206206994597c13d831ec76001600160a01b03168152602001611f4081526020016124548152602001600081526020016103e881526020016105dc81526020016109c4815250816000815181106107ad57fe5b604051635fd6196560e01b8152739fb7b4477576fe5b32be4c1843afb1e55f251b3390635fd6196590610a7590736cc89782495a2162b2a4f5b206e2a06dc86750909060040161184c565b600060405180830381600087803b158015610a8f57600080fd5b505af1158015610aa3573d6000803e3d6000fd5b50505050565b604051635fd6196560e01b8152735c20b550819128074fd538edf79791733ccedd1890635fd6196590610a7590736cc89782495a2162b2a4f5b206e2a06dc86750909060040161184c565b600073324c5dc1fc42c7a4d43d92df1eba58a54d13bf2d6001600160a01b031663968cbade7315f6f562ae136240ab9f4905cb50aca54bcbeb5f63f9f872f560e01b739d39a5de30e57443bff2a8307a4256c8797a349773a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48604051602401610b71929190611860565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e085901b9092168252610bb7929160040161189e565b602060405180830381600087803b158015610bd157600080fd5b505af1158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c09919061164d565b60408051600180825281830190925291925060609190816020015b610c2c6115b0565b815260200190600190039081610c245790505090506040518060c00160405280836001600160a01b03168152602001739d39a5de30e57443bff2a8307a4256c8797a34976001600160a01b03168152602001600160ff1681526020016109c4815260200161a8c081526020016a06342fd08f00f63780000081525081600081518110610cb457fe5b60209081029190910101526040516301635db560e11b81527352aa899454998be5b000ad077a46bbe360f4e497906302c6bb6a90610cf6908490600401611b0e565b600060405180830381600087803b158015610d1057600080fd5b505af1158015610d24573d6000803e3d6000fd5b50505050506060600167ffffffffffffffff81118015610d4357600080fd5b50604051908082528060200260200182016040528015610d7d57816020015b610d6a6115fb565b815260200190600190039081610d625790505b5090506040518060e00160405280836001600160a01b0316815260200173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b03168152602001600160ff1681526020016107d0815260200161a8c081526020016506d23ad5f80081526020016512309ce5400081525081600081518110610dfa57fe5b602090810291909101015260405162dc47c360e11b81527352aa899454998be5b000ad077a46bbe360f4e497906301b88f8690610e3b908490600401611a8a565b600060405180830381600087803b158015610e5557600080fd5b505af1158015610e69573d6000803e3d6000fd5b50506040516354b04ef560e01b81526001600160a01b03851693506354b04ef59250610eb49150612710908190612260906123289061251c906101f49060c890600090600401611b88565b600060405180830381600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b505060405163072d137f60e21b81526001600160a01b0384169250631cb44dfc9150610f2690737779ec4694752a118580cc8ad28b9a11f7e3bb129060040161184c565b600060405180830381600087803b158015610f4057600080fd5b505af1158015610f54573d6000803e3d6000fd5b505060405163b046a44960e01b81526001600160a01b038416925063b046a4499150610f989073264786ef916af64a1db19f513f24a3681734ce929060040161184c565b600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050604051637faa1d2160e01b815273324c5dc1fc42c7a4d43d92df1eba58a54d13bf2d9250637faa1d2191506107ef9084907336639dad77ec858574aaf07a68bba62b7db19ffa9060019060040161187a565b600073324c5dc1fc42c7a4d43d92df1eba58a54d13bf2d6001600160a01b031663968cbade7315f6f562ae136240ab9f4905cb50aca54bcbeb5f63f9f872f560e01b739d39a5de30e57443bff2a8307a4256c8797a349773dac17f958d2ee523a2206206994597c13d831ec7604051602401611097929190611860565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e085901b90921682526110dd929160040161189e565b602060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112f919061164d565b60408051600180825281830190925291925060609190816020015b6111526115b0565b81526020019060019003908161114a5790505090506040518060c00160405280836001600160a01b03168152602001739d39a5de30e57443bff2a8307a4256c8797a34976001600160a01b03168152602001600160ff1681526020016109c4815260200161a8c081526020016a06342fd08f00f637800000815250816000815181106111da57fe5b60209081029190910101526040516301635db560e11b81527352aa899454998be5b000ad077a46bbe360f4e497906302c6bb6a9061121c908490600401611b0e565b600060405180830381600087803b15801561123657600080fd5b505af115801561124a573d6000803e3d6000fd5b50505050506060600167ffffffffffffffff8111801561126957600080fd5b506040519080825280602002602001820160405280156112a357816020015b6112906115fb565b8152602001906001900390816112885790505b5090506040518060e00160405280836001600160a01b0316815260200173dac17f958d2ee523a2206206994597c13d831ec76001600160a01b03168152602001600160ff1681526020016107d0815260200161a8c081526020016506d23ad5f80081526020016512309ce540008152508160008151811061132057fe5b602090810291909101015260405162dc47c360e11b81527352aa899454998be5b000ad077a46bbe360f4e497906301b88f8690611361908490600401611a8a565b600060405180830381600087803b15801561137b57600080fd5b505af115801561138f573d6000803e3d6000fd5b50506040516354b04ef560e01b81526001600160a01b03851693506354b04ef592506113da9150612710908190612260906123289061251c906101f49060c890600090600401611b88565b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505060405163072d137f60e21b81526001600160a01b0384169250631cb44dfc915061144c90737779ec4694752a118580cc8ad28b9a11f7e3bb129060040161184c565b600060405180830381600087803b15801561146657600080fd5b505af115801561147a573d6000803e3d6000fd5b505060405163b046a44960e01b81526001600160a01b038416925063b046a44991506114be9073264786ef916af64a1db19f513f24a3681734ce929060040161184c565b600060405180830381600087803b1580156114d857600080fd5b505af11580156114ec573d6000803e3d6000fd5b5050604051637faa1d2160e01b815273324c5dc1fc42c7a4d43d92df1eba58a54d13bf2d9250637faa1d2191506107ef90849073afe3974f4916140a093f1de7fc064a3da220dd419060019060040161187a565b6040518060e0016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600060ff1681526020016000815260200160008152602001600081525090565b6040518060e0016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600060ff168152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561165e578081fd5b81516001600160a01b0381168114611674578182fd5b9392505050565b6000602080838503121561168d578182fd5b823567ffffffffffffffff808211156116a4578384fd5b818501915085601f8301126116b7578384fd5b8135818111156116c357fe5b604051601f8201601f19168101850183811182821017156116e057fe5b60405281815283820185018810156116f6578586fd5b818585018683013790810190930193909352509392505050565b600060208284031215611721578081fd5b5051919050565b60008282518085526020808601955080818302840101818601855b8481101561177157601f1986840301895261175f838351611801565b98840198925090830190600101611743565b5090979650505050505050565b60008282518085526020808601955080818302840101818601855b8481101561177157601f198684030189526117b5838351611801565b98840198925090830190600101611799565b6000815180845260208085019450808401835b838110156117f6578151875295820195908201906001016117da565b509495945050505050565b60008151808452815b818110156118265760208185018101518683018201520161180a565b818111156118375782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152901515604082015260600190565b6001600160a01b03831681526040602082018190526000906118c290830184611801565b949350505050565b600060018060a01b038416825260606020830152600960608301526865786563757465282960b81b608083015260a060408301526118c260a0830184611801565b60a0808252865190820181905260009060209060c0840190828a01845b8281101561194d5781516001600160a01b031684529284019290840190600101611928565b5050508381038285015261196181896117c7565b9150508281036040840152611976818761177e565b9050828103606084015261198a8186611728565b9050828103608084015261199e8185611801565b98975050505050505050565b602080825282518282018190526000919060409081850190868401855b82811015611a2857815180516001600160a01b0316855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201519086015260c0908101519085015260e090930192908501906001016119c7565b5091979650505050505050565b602080825282518282018190526000919060409081850190868401855b82811015611a2857815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101611a52565b602080825282518282018190526000919060409081850190868401855b82811015611a2857815180516001600160a01b0390811686528782015116878601528581015160ff1686860152606080820151908601526080808201519086015260a0808201519086015260c0908101519085015260e09093019290850190600101611aa7565b602080825282518282018190526000919060409081850190868401855b82811015611a2857815180516001600160a01b0390811686528782015116878601528581015160ff1686860152606080820151908601526080808201519086015260a0908101519085015260c09093019290850190600101611b2b565b978852602088019690965260408701949094526060860192909252608085015260a084015260c083015260e08201526101000190565b6020808252601690820152751b5cd9cb9cd95b99195c8b5b9bdd0b585b1b1bddd95960521b604082015260600190565b60208082526014908201527350524f504f53414c5f49535f4e4f545f53414d4560601b604082015260600190565b60208082526010908201526f3737ba16bb30b634b216b1b0b63632b960811b604082015260600190565b9081526020019056fe657865637574655061796c6f616428616464726573732c737472696e672c627974657329a2646970667358221220a407bf8ff62a0c169f80d10df51a9d121add376da420b7887714e0680665a73f64736f6c63430007030033","abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ADDRESS_THIS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"F_USDC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"F_USDT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVERNOR","outputs":[{"internalType":"contract IGovernorBravo","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIQUIDITY","outputs":[{"internalType":"contract IFluidLiquidityAdmin","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSAL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER_AVO_MULTISIG","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TEAM_MULTISIG","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMELOCK","outputs":[{"internalType":"contract ITimelock","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDT_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VAULT_T1_DEPLOYMENT_LOGIC","outputs":[{"internalType":"contract IFluidVaultT1DeploymentLogic","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VAULT_T1_FACTORY","outputs":[{"internalType":"contract IFluidVaultT1Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sUSDe_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"verifyProposal","outputs":[],"stateMutability":"view","type":"function"}]}