Contract 0xc440Af46DAC68fe74AA4e849Cb798329c44b0908 1

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x062bdd5740c3abee17360ac0ea60f73a5298cbc33d98ae86bf36f9049403b4780x61010060197372152021-10-22 5:47:4647 days 12 hrs ago0x55d56e1bb2fc8280a775ccfe9ececcecf1a01562 IN  Contract Creation0 FTM0.366447050134
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x062bdd5740c3abee17360ac0ea60f73a5298cbc33d98ae86bf36f9049403b478197372152021-10-22 5:47:4647 days 12 hrs ago 0x55d56e1bb2fc8280a775ccfe9ececcecf1a01562  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ParametersBatchUpdater

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 7 : ParametersBatchUpdater.sol
// SPDX-License-Identifier: bsl-1.1

/*
  Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]).
*/
pragma solidity 0.7.6;
pragma abicoder v2;


import "./VaultParameters.sol";
import "./interfaces/IVaultManagerParameters.sol";
import "./interfaces/IBearingAssetOracle.sol";
import "./interfaces/IOracleRegistry.sol";
import "./interfaces/ICollateralRegistry.sol";
import "./interfaces/IVault.sol";


/**
 * @title ParametersBatchUpdater
 **/
contract ParametersBatchUpdater is Auth {

    IVaultManagerParameters public immutable vaultManagerParameters;
    IOracleRegistry public immutable oracleRegistry;
    ICollateralRegistry public immutable collateralRegistry;

    uint public constant BEARING_ASSET_ORACLE_TYPE = 9;

    constructor(
        address _vaultManagerParameters,
        address _oracleRegistry,
        address _collateralRegistry
    ) Auth(IVaultManagerParameters(_vaultManagerParameters).vaultParameters()) {
        require(
            _vaultManagerParameters != address(0) &&
            _oracleRegistry != address(0) &&
            _collateralRegistry != address(0), "Unit Protocol: ZERO_ADDRESS");
        vaultManagerParameters = IVaultManagerParameters(_vaultManagerParameters);
        oracleRegistry = IOracleRegistry(_oracleRegistry);
        collateralRegistry = ICollateralRegistry(_collateralRegistry);
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Grants and revokes manager's status
     * @param who The array of target addresses
     * @param permit The array of permission flags
     **/
    function setManagers(address[] calldata who, bool[] calldata permit) external onlyManager {
        require(who.length == permit.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < who.length; i++) {
            vaultParameters.setManager(who[i], permit[i]);
        }
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets a permission for provided addresses to modify the Vault
     * @param who The array of target addresses
     * @param permit The array of permission flags
     **/
    function setVaultAccesses(address[] calldata who, bool[] calldata permit) external onlyManager {
        require(who.length == permit.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < who.length; i++) {
            vaultParameters.setVaultAccess(who[i], permit[i]);
        }
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets the percentage of the year stability fee for a particular collateral
     * @param assets The array of addresses of the main collateral tokens
     * @param newValues The array of stability fee percentages (3 decimals)
     **/
    function setStabilityFees(address[] calldata assets, uint[] calldata newValues) public onlyManager {
        require(assets.length == newValues.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < assets.length; i++) {
            vaultParameters.setStabilityFee(assets[i], newValues[i]);
        }
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets the percentages of the liquidation fee for provided collaterals
     * @param assets The array of addresses of the main collateral tokens
     * @param newValues The array of liquidation fee percentages (0 decimals)
     **/
    function setLiquidationFees(address[] calldata assets, uint[] calldata newValues) public onlyManager {
        require(assets.length == newValues.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < assets.length; i++) {
            vaultParameters.setLiquidationFee(assets[i], newValues[i]);
        }
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Enables/disables oracle types
     * @param _types The array of types of the oracles
     * @param assets The array of addresses of the main collateral tokens
     * @param flags The array of control flags
     **/
    function setOracleTypes(uint[] calldata _types, address[] calldata assets, bool[] calldata flags) public onlyManager {
        require(_types.length == assets.length && _types.length == flags.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < _types.length; i++) {
            vaultParameters.setOracleType(_types[i], assets[i], flags[i]);
        }
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets USDP limits for a provided collaterals
     * @param assets The addresses of the main collateral tokens
     * @param limits The borrow USDP limits
     **/
    function setTokenDebtLimits(address[] calldata assets, uint[] calldata limits) public onlyManager {
        require(assets.length == limits.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < assets.length; i++) {
            vaultParameters.setTokenDebtLimit(assets[i], limits[i]);
        }
    }

    function changeOracleTypes(address[] calldata assets, address[] calldata users, uint[] calldata oracleTypes) public onlyManager {
        require(assets.length == users.length && assets.length == oracleTypes.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < assets.length; i++) {
            IVault(vaultParameters.vault()).changeOracleType(assets[i], users[i], oracleTypes[i]);
        }
    }

    function setInitialCollateralRatios(address[] calldata assets, uint[] calldata values) public onlyManager {
        require(assets.length == values.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < assets.length; i++) {
            vaultManagerParameters.setInitialCollateralRatio(assets[i], values[i]);
        }
    }

    function setLiquidationRatios(address[] calldata assets, uint[] calldata values) public onlyManager {
        require(assets.length == values.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < assets.length; i++) {
            vaultManagerParameters.setLiquidationRatio(assets[i], values[i]);
        }
    }

    function setLiquidationDiscounts(address[] calldata assets, uint[] calldata values) public onlyManager {
        require(assets.length == values.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < assets.length; i++) {
            vaultManagerParameters.setLiquidationDiscount(assets[i], values[i]);
        }
    }

    function setDevaluationPeriods(address[] calldata assets, uint[] calldata values) public onlyManager {
        require(assets.length == values.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < assets.length; i++) {
            vaultManagerParameters.setDevaluationPeriod(assets[i], values[i]);
        }
    }

    function setOracleTypesInRegistry(uint[] calldata oracleTypes, address[] calldata oracles) public onlyManager {
        require(oracleTypes.length == oracles.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < oracleTypes.length; i++) {
            oracleRegistry.setOracle(oracleTypes[i], oracles[i]);
        }
    }

    function setOracleTypesToAssets(address[] calldata assets, uint[] calldata oracleTypes) public onlyManager {
        require(oracleTypes.length == assets.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < assets.length; i++) {
            oracleRegistry.setOracleTypeForAsset(assets[i], oracleTypes[i]);
        }
    }

    function setOracleTypesToAssetsBatch(address[][] calldata assets, uint[] calldata oracleTypes) public onlyManager {
        require(oracleTypes.length == assets.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < assets.length; i++) {
            oracleRegistry.setOracleTypeForAssets(assets[i], oracleTypes[i]);
        }
    }

    function setUnderlyings(address[] calldata bearings, address[] calldata underlyings) public onlyManager {
        require(bearings.length == underlyings.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < bearings.length; i++) {
            IBearingAssetOracle(oracleRegistry.oracleByType(BEARING_ASSET_ORACLE_TYPE)).setUnderlying(bearings[i], underlyings[i]);
        }
    }

    function setCollaterals(
        address[] calldata assets,
        uint stabilityFeeValue,
        uint liquidationFeeValue,
        uint initialCollateralRatioValue,
        uint liquidationRatioValue,
        uint liquidationDiscountValue,
        uint devaluationPeriodValue,
        uint usdpLimit,
        uint[] calldata oracles
    ) external onlyManager {
        for (uint i = 0; i < assets.length; i++) {
            vaultManagerParameters.setCollateral(
                assets[i],
                stabilityFeeValue,
                liquidationFeeValue,
                initialCollateralRatioValue,
                liquidationRatioValue,
                liquidationDiscountValue,
                devaluationPeriodValue,
                usdpLimit,
                oracles,
                0,
                0
            );

            collateralRegistry.addCollateral(assets[i]);
        }
    }

    function setCollateralAddresses(address[] calldata assets, bool add) external onlyManager {
        for (uint i = 0; i < assets.length; i++) {
            add ? collateralRegistry.addCollateral(assets[i]) : collateralRegistry.removeCollateral(assets[i]);
        }
    }
}

File 2 of 7 : VaultParameters.sol
// SPDX-License-Identifier: bsl-1.1

/*
  Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]).
*/
pragma solidity 0.7.6;



/**
 * @title Auth
 * @dev Manages USDP's system access
 **/
contract Auth {

    // address of the the contract with vault parameters
    VaultParameters public immutable vaultParameters;

    constructor(address _parameters) {
        vaultParameters = VaultParameters(_parameters);
    }

    // ensures tx's sender is a manager
    modifier onlyManager() {
        require(vaultParameters.isManager(msg.sender), "Unit Protocol: AUTH_FAILED");
        _;
    }

    // ensures tx's sender is able to modify the Vault
    modifier hasVaultAccess() {
        require(vaultParameters.canModifyVault(msg.sender), "Unit Protocol: AUTH_FAILED");
        _;
    }

    // ensures tx's sender is the Vault
    modifier onlyVault() {
        require(msg.sender == vaultParameters.vault(), "Unit Protocol: AUTH_FAILED");
        _;
    }
}



/**
 * @title VaultParameters
 **/
contract VaultParameters is Auth {

    // map token to stability fee percentage; 3 decimals
    mapping(address => uint) public stabilityFee;

    // map token to liquidation fee percentage, 0 decimals
    mapping(address => uint) public liquidationFee;

    // map token to USDP mint limit
    mapping(address => uint) public tokenDebtLimit;

    // permissions to modify the Vault
    mapping(address => bool) public canModifyVault;

    // managers
    mapping(address => bool) public isManager;

    // enabled oracle types
    mapping(uint => mapping (address => bool)) public isOracleTypeEnabled;

    // address of the Vault
    address payable public immutable vault;

    // The foundation address
    address public foundation;

    /**
     * The address for an Ethereum contract is deterministically computed from the address of its creator (sender)
     * and how many transactions the creator has sent (nonce). The sender and nonce are RLP encoded and then
     * hashed with Keccak-256.
     * Therefore, the Vault address can be pre-computed and passed as an argument before deployment.
    **/
    constructor(address payable _vault, address _foundation) Auth(address(this)) {
        require(_vault != address(0), "Unit Protocol: ZERO_ADDRESS");
        require(_foundation != address(0), "Unit Protocol: ZERO_ADDRESS");

        isManager[msg.sender] = true;
        vault = _vault;
        foundation = _foundation;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Grants and revokes manager's status of any address
     * @param who The target address
     * @param permit The permission flag
     **/
    function setManager(address who, bool permit) external onlyManager {
        isManager[who] = permit;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets the foundation address
     * @param newFoundation The new foundation address
     **/
    function setFoundation(address newFoundation) external onlyManager {
        require(newFoundation != address(0), "Unit Protocol: ZERO_ADDRESS");
        foundation = newFoundation;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets ability to use token as the main collateral
     * @param asset The address of the main collateral token
     * @param stabilityFeeValue The percentage of the year stability fee (3 decimals)
     * @param liquidationFeeValue The liquidation fee percentage (0 decimals)
     * @param usdpLimit The USDP token issue limit
     * @param oracles The enables oracle types
     **/
    function setCollateral(
        address asset,
        uint stabilityFeeValue,
        uint liquidationFeeValue,
        uint usdpLimit,
        uint[] calldata oracles
    ) external onlyManager {
        setStabilityFee(asset, stabilityFeeValue);
        setLiquidationFee(asset, liquidationFeeValue);
        setTokenDebtLimit(asset, usdpLimit);
        for (uint i=0; i < oracles.length; i++) {
            setOracleType(oracles[i], asset, true);
        }
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets a permission for an address to modify the Vault
     * @param who The target address
     * @param permit The permission flag
     **/
    function setVaultAccess(address who, bool permit) external onlyManager {
        canModifyVault[who] = permit;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets the percentage of the year stability fee for a particular collateral
     * @param asset The address of the main collateral token
     * @param newValue The stability fee percentage (3 decimals)
     **/
    function setStabilityFee(address asset, uint newValue) public onlyManager {
        stabilityFee[asset] = newValue;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets the percentage of the liquidation fee for a particular collateral
     * @param asset The address of the main collateral token
     * @param newValue The liquidation fee percentage (0 decimals)
     **/
    function setLiquidationFee(address asset, uint newValue) public onlyManager {
        require(newValue <= 100, "Unit Protocol: VALUE_OUT_OF_RANGE");
        liquidationFee[asset] = newValue;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Enables/disables oracle types
     * @param _type The type of the oracle
     * @param asset The address of the main collateral token
     * @param enabled The control flag
     **/
    function setOracleType(uint _type, address asset, bool enabled) public onlyManager {
        isOracleTypeEnabled[_type][asset] = enabled;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets USDP limit for a specific collateral
     * @param asset The address of the main collateral token
     * @param limit The limit number
     **/
    function setTokenDebtLimit(address asset, uint limit) public onlyManager {
        tokenDebtLimit[asset] = limit;
    }
}

File 3 of 7 : IVaultManagerParameters.sol
// SPDX-License-Identifier: bsl-1.1

/*
  Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]).
*/
pragma solidity ^0.7.6;

interface IVaultManagerParameters {
    function devaluationPeriod ( address ) external view returns ( uint256 );
    function initialCollateralRatio ( address ) external view returns ( uint256 );
    function liquidationDiscount ( address ) external view returns ( uint256 );
    function liquidationRatio ( address ) external view returns ( uint256 );
    function maxColPercent ( address ) external view returns ( uint256 );
    function minColPercent ( address ) external view returns ( uint256 );
    function setColPartRange ( address asset, uint256 min, uint256 max ) external;
    function setCollateral (
        address asset,
        uint256 stabilityFeeValue,
        uint256 liquidationFeeValue,
        uint256 initialCollateralRatioValue,
        uint256 liquidationRatioValue,
        uint256 liquidationDiscountValue,
        uint256 devaluationPeriodValue,
        uint256 usdpLimit,
        uint256[] calldata oracles,
        uint256 minColP,
        uint256 maxColP
    ) external;
    function setDevaluationPeriod ( address asset, uint256 newValue ) external;
    function setInitialCollateralRatio ( address asset, uint256 newValue ) external;
    function setLiquidationDiscount ( address asset, uint256 newValue ) external;
    function setLiquidationRatio ( address asset, uint256 newValue ) external;
    function vaultParameters (  ) external view returns ( address );
}

File 4 of 7 : IBearingAssetOracle.sol
// SPDX-License-Identifier: bsl-1.1

/*
  Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]).
*/
pragma solidity ^0.7.6;

interface IBearingAssetOracle {
    function assetToUsd ( address bearing, uint256 amount ) external view returns ( uint256 );
    function bearingToUnderlying ( address bearing, uint256 amount ) external view returns ( address, uint256 );
    function oracleRegistry (  ) external view returns ( address );
    function setUnderlying ( address bearing, address underlying ) external;
    function vaultParameters (  ) external view returns ( address );
}

File 5 of 7 : IOracleRegistry.sol
// SPDX-License-Identifier: bsl-1.1

/*
  Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]).
*/
pragma solidity ^0.7.6;
pragma abicoder v2;

interface IOracleRegistry {

    struct Oracle {
        uint oracleType;
        address oracleAddress;
    }

    function WETH (  ) external view returns ( address );
    function getKeydonixOracleTypes (  ) external view returns ( uint256[] memory );
    function getOracles (  ) external view returns ( Oracle[] memory foundOracles );
    function keydonixOracleTypes ( uint256 ) external view returns ( uint256 );
    function maxOracleType (  ) external view returns ( uint256 );
    function oracleByAsset ( address asset ) external view returns ( address );
    function oracleByType ( uint256 ) external view returns ( address );
    function oracleTypeByAsset ( address ) external view returns ( uint256 );
    function oracleTypeByOracle ( address ) external view returns ( uint256 );
    function setKeydonixOracleTypes ( uint256[] memory _keydonixOracleTypes ) external;
    function setOracle ( uint256 oracleType, address oracle ) external;
    function setOracleTypeForAsset ( address asset, uint256 oracleType ) external;
    function setOracleTypeForAssets ( address[] memory assets, uint256 oracleType ) external;
    function unsetOracle ( uint256 oracleType ) external;
    function unsetOracleForAsset ( address asset ) external;
    function unsetOracleForAssets ( address[] memory assets ) external;
    function vaultParameters (  ) external view returns ( address );
}

File 6 of 7 : ICollateralRegistry.sol
// SPDX-License-Identifier: bsl-1.1

/*
  Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]).
*/
pragma solidity ^0.7.6;

interface ICollateralRegistry {
    function addCollateral ( address asset ) external;
    function collateralId ( address ) external view returns ( uint256 );
    function collaterals (  ) external view returns ( address[] memory );
    function removeCollateral ( address asset ) external;
    function vaultParameters (  ) external view returns ( address );
    function isCollateral ( address asset ) external view returns ( bool );
    function collateralList ( uint id ) external view returns ( address );
    function collateralsCount (  ) external view returns ( uint );
}

File 7 of 7 : IVault.sol
// SPDX-License-Identifier: bsl-1.1

/*
  Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]).
*/
pragma solidity ^0.7.6;

interface IVault {
    function DENOMINATOR_1E2 (  ) external view returns ( uint256 );
    function DENOMINATOR_1E5 (  ) external view returns ( uint256 );
    function borrow ( address asset, address user, uint256 amount ) external returns ( uint256 );
    function changeOracleType ( address asset, address user, uint256 newOracleType ) external;
    function chargeFee ( address asset, address user, uint256 amount ) external;
    function decreaseFee ( address asset, address user, uint amount ) external;
    function col (  ) external view returns ( address );
    function colToken ( address, address ) external view returns ( uint256 );
    function collaterals ( address, address ) external view returns ( uint256 );
    function debts ( address, address ) external view returns ( uint256 );
    function getFee ( address, address ) external view returns ( uint256 );
    function depositCol ( address asset, address user, uint256 amount ) external;
    function depositEth ( address user ) external payable;
    function depositMain ( address asset, address user, uint256 amount ) external;
    function destroy ( address asset, address user ) external;
    function getTotalDebt ( address asset, address user ) external view returns ( uint256 );
    function lastUpdate ( address, address ) external view returns ( uint256 );
    function liquidate ( address asset, address positionOwner, uint256 mainAssetToLiquidator, uint256 mainAssetToPositionOwner, uint256 repayment, uint256 penalty, address liquidator ) external;
    function liquidationBlock ( address, address ) external view returns ( uint256 );
    function liquidationFee ( address, address ) external view returns ( uint256 );
    function liquidationPrice ( address, address ) external view returns ( uint256 );
    function oracleType ( address, address ) external view returns ( uint256 );
    function repay ( address asset, address user, uint256 amount ) external returns ( uint256 );
    function spawn ( address asset, address user, uint256 _oracleType ) external;
    function stabilityFee ( address, address ) external view returns ( uint256 );
    function tokenDebts ( address ) external view returns ( uint256 );
    function triggerLiquidation ( address asset, address positionOwner, uint256 initialPrice ) external;
    function update ( address asset, address user ) external;
    function usdp (  ) external view returns ( address );
    function vaultParameters (  ) external view returns ( address );
    function weth (  ) external view returns ( address payable );
    function withdrawCol ( address asset, address user, uint256 amount ) external;
    function withdrawEth ( address user, uint256 amount ) external;
    function withdrawMain ( address asset, address user, uint256 amount ) external;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_vaultManagerParameters","type":"address"},{"internalType":"address","name":"_oracleRegistry","type":"address"},{"internalType":"address","name":"_collateralRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BEARING_ASSET_ORACLE_TYPE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"uint256[]","name":"oracleTypes","type":"uint256[]"}],"name":"changeOracleTypes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collateralRegistry","outputs":[{"internalType":"contract ICollateralRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleRegistry","outputs":[{"internalType":"contract IOracleRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"bool","name":"add","type":"bool"}],"name":"setCollateralAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256","name":"stabilityFeeValue","type":"uint256"},{"internalType":"uint256","name":"liquidationFeeValue","type":"uint256"},{"internalType":"uint256","name":"initialCollateralRatioValue","type":"uint256"},{"internalType":"uint256","name":"liquidationRatioValue","type":"uint256"},{"internalType":"uint256","name":"liquidationDiscountValue","type":"uint256"},{"internalType":"uint256","name":"devaluationPeriodValue","type":"uint256"},{"internalType":"uint256","name":"usdpLimit","type":"uint256"},{"internalType":"uint256[]","name":"oracles","type":"uint256[]"}],"name":"setCollaterals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"setDevaluationPeriods","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"setInitialCollateralRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"setLiquidationDiscounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"newValues","type":"uint256[]"}],"name":"setLiquidationFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"setLiquidationRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"who","type":"address[]"},{"internalType":"bool[]","name":"permit","type":"bool[]"}],"name":"setManagers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_types","type":"uint256[]"},{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"bool[]","name":"flags","type":"bool[]"}],"name":"setOracleTypes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"oracleTypes","type":"uint256[]"},{"internalType":"address[]","name":"oracles","type":"address[]"}],"name":"setOracleTypesInRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"oracleTypes","type":"uint256[]"}],"name":"setOracleTypesToAssets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[][]","name":"assets","type":"address[][]"},{"internalType":"uint256[]","name":"oracleTypes","type":"uint256[]"}],"name":"setOracleTypesToAssetsBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"newValues","type":"uint256[]"}],"name":"setStabilityFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"limits","type":"uint256[]"}],"name":"setTokenDebtLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bearings","type":"address[]"},{"internalType":"address[]","name":"underlyings","type":"address[]"}],"name":"setUnderlyings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"who","type":"address[]"},{"internalType":"bool[]","name":"permit","type":"bool[]"}],"name":"setVaultAccesses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vaultManagerParameters","outputs":[{"internalType":"contract IVaultManagerParameters","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vaultParameters","outputs":[{"internalType":"contract VaultParameters","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

6101006040523480156200001257600080fd5b5060405162002c4d38038062002c4d833981016040819052620000359162000181565b826001600160a01b031663aca345ee6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200006f57600080fd5b505afa15801562000084573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000aa91906200015d565b60601b6001600160601b0319166080526001600160a01b03831615801590620000db57506001600160a01b03821615155b8015620000f057506001600160a01b03811615155b620001185760405162461bcd60e51b81526004016200010f90620001ca565b60405180910390fd5b6001600160601b0319606093841b811660a05291831b821660c05290911b1660e05262000201565b80516001600160a01b03811681146200015857600080fd5b919050565b6000602082840312156200016f578081fd5b6200017a8262000140565b9392505050565b60008060006060848603121562000196578182fd5b620001a18462000140565b9250620001b16020850162000140565b9150620001c16040850162000140565b90509250925092565b6020808252601b908201527f556e69742050726f746f636f6c3a205a45524f5f414444524553530000000000604082015260600190565b60805160601c60a05160601c60c05160601c60e05160601c612956620002f760003980611ac25280611d80528061203c52806120df52508061090e528061125f52806114e452806117fe5280611e9f5250806103dc528061059c5280610ac75280611a0d5280611ba35280611cc25250806102f652806104bf52806106785280610755528061083152806109ea5280610ba35280610c805280610d6a5280610e525280610fc952806110a65280611182528061133b52806114185280611526528061160e528061170c528061194f5280611b7a5280611be55280611dc25280611f7952806121aa528061228752506129566000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c80638164ce26116100b8578063b7ebdc0c1161007c578063b7ebdc0c1461027a578063bef4179514610282578063d330fadd14610295578063e75077af1461029d578063ef37d766146102b0578063f440d918146102c357610141565b80638164ce261461022457806385063ca31461023757806387b2a4ad1461024a578063aca345ee1461025d578063ade21a721461026557610141565b8063279087281161010a57806327908728146101a75780632c47b595146101ba5780632c5cf26d146101cd5780633b6416d5146101e05780633bdcc923146101f35780634bb93ab11461020657610141565b806266d0901461014657806308cff21c1461015b5780631174076a1461016e5780631b87965f146101815780631e2ad5bb14610194575b600080fd5b6101596101543660046124df565b6102d6565b005b6101596101693660046124df565b61049f565b61015961017c3660046124df565b610658565b61015961018f3660046124df565b610811565b6101596101a23660046124df565b6109ca565b6101596101b53660046124df565b610b83565b6101596101c8366004612449565b610d4a565b6101596101db3660046124df565b610fa9565b6101596101ee366004612612565b611162565b6101596102013660046124df565b61131b565b61020e6114e2565b60405161021b91906126ab565b60405180910390f35b61015961023236600461263e565b611506565b6101596102453660046123e0565b6116ec565b61015961025836600461255d565b61192f565b61020e611b78565b61026d611b9c565b60405161021b9190612860565b61020e611ba1565b6101596102903660046124df565b611bc5565b61020e611d7e565b6101596102ab3660046124df565b611da2565b6101596102be36600461250b565b611f59565b6101596102d13660046124df565b61218a565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b15801561033c57600080fd5b505afa158015610350573d6000803e3d6000fd5b505050506040513d602081101561036657600080fd5b50516103a7576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b8281146103cf5760405162461bcd60e51b81526004016103c690612818565b60405180910390fd5b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf1b8dd386868481811061041557fe5b905060200201602081019061042a91906123a1565b85858581811061043657fe5b905060200201356040518363ffffffff1660e01b815260040161045a929190612718565b600060405180830381600087803b15801561047457600080fd5b505af1158015610488573d6000803e3d6000fd5b5050600190920191506103d29050565b5050505050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b15801561050557600080fd5b505afa158015610519573d6000803e3d6000fd5b505050506040513d602081101561052f57600080fd5b5051610570576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b82811461058f5760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631c7130988686848181106105d557fe5b90506020020160208101906105ea91906123a1565b8585858181106105f657fe5b905060200201356040518363ffffffff1660e01b815260040161061a929190612718565b600060405180830381600087803b15801561063457600080fd5b505af1158015610648573d6000803e3d6000fd5b5050600190920191506105929050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b1580156106be57600080fd5b505afa1580156106d2573d6000803e3d6000fd5b505050506040513d60208110156106e857600080fd5b5051610729576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b8281146107485760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a526ae2c86868481811061078e57fe5b90506020020160208101906107a391906123a1565b8585858181106107af57fe5b905060200201356040518363ffffffff1660e01b81526004016107d3929190612718565b600060405180830381600087803b1580156107ed57600080fd5b505af1158015610801573d6000803e3d6000fd5b50506001909201915061074b9050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b15801561087757600080fd5b505afa15801561088b573d6000803e3d6000fd5b505050506040513d60208110156108a157600080fd5b50516108e2576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b8083146109015760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632151010986868481811061094757fe5b905060200201602081019061095c91906123a1565b85858581811061096857fe5b905060200201356040518363ffffffff1660e01b815260040161098c929190612718565b600060405180830381600087803b1580156109a657600080fd5b505af11580156109ba573d6000803e3d6000fd5b5050600190920191506109049050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b158015610a3057600080fd5b505afa158015610a44573d6000803e3d6000fd5b505050506040513d6020811015610a5a57600080fd5b5051610a9b576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b828114610aba5760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b7fc3ada868684818110610b0057fe5b9050602002016020810190610b1591906123a1565b858585818110610b2157fe5b905060200201356040518363ffffffff1660e01b8152600401610b45929190612718565b600060405180830381600087803b158015610b5f57600080fd5b505af1158015610b73573d6000803e3d6000fd5b505060019092019150610abd9050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b158015610be957600080fd5b505afa158015610bfd573d6000803e3d6000fd5b505050506040513d6020811015610c1357600080fd5b5051610c54576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b828114610c735760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ede2362f868684818110610cb957fe5b9050602002016020810190610cce91906123a1565b858585818110610cda57fe5b9050602002016020810190610cef9190612691565b6040518363ffffffff1660e01b8152600401610d0c9291906126fd565b600060405180830381600087803b158015610d2657600080fd5b505af1158015610d3a573d6000803e3d6000fd5b505060019092019150610c769050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b158015610db057600080fd5b505afa158015610dc4573d6000803e3d6000fd5b505050506040513d6020811015610dda57600080fd5b5051610e1b576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b8483148015610e2957508481145b610e455760405162461bcd60e51b81526004016103c690612818565b60005b85811015610fa0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fbfa77cf6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ea957600080fd5b505afa158015610ebd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee191906123c4565b6001600160a01b03166347ba94f9888884818110610efb57fe5b9050602002016020810190610f1091906123a1565b878785818110610f1c57fe5b9050602002016020810190610f3191906123a1565b868686818110610f3d57fe5b905060200201356040518463ffffffff1660e01b8152600401610f62939291906126d9565b600060405180830381600087803b158015610f7c57600080fd5b505af1158015610f90573d6000803e3d6000fd5b505060019092019150610e489050565b50505050505050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b15801561100f57600080fd5b505afa158015611023573d6000803e3d6000fd5b505050506040513d602081101561103957600080fd5b505161107a576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b8281146110995760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634df143418686848181106110df57fe5b90506020020160208101906110f491906123a1565b85858581811061110057fe5b905060200201356040518363ffffffff1660e01b8152600401611124929190612718565b600060405180830381600087803b15801561113e57600080fd5b505af1158015611152573d6000803e3d6000fd5b50506001909201915061109c9050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b1580156111c857600080fd5b505afa1580156111dc573d6000803e3d6000fd5b505050506040513d60208110156111f257600080fd5b5051611233576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b8281146112525760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166317c6756986868481811061129857fe5b905060200201358585858181106112ab57fe5b90506020020160208101906112c091906123a1565b6040518363ffffffff1660e01b81526004016112dd929190612869565b600060405180830381600087803b1580156112f757600080fd5b505af115801561130b573d6000803e3d6000fd5b5050600190920191506112559050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b15801561138157600080fd5b505afa158015611395573d6000803e3d6000fd5b505050506040513d60208110156113ab57600080fd5b50516113ec576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b82811461140b5760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a5e90eee86868481811061145157fe5b905060200201602081019061146691906123a1565b85858581811061147257fe5b90506020020160208101906114879190612691565b6040518363ffffffff1660e01b81526004016114a49291906126fd565b600060405180830381600087803b1580156114be57600080fd5b505af11580156114d2573d6000803e3d6000fd5b50506001909201915061140e9050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b15801561156c57600080fd5b505afa158015611580573d6000803e3d6000fd5b505050506040513d602081101561159657600080fd5b50516115d7576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b84831480156115e557508481145b6116015760405162461bcd60e51b81526004016103c690612818565b60005b85811015610fa0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cc9a10a688888481811061164757fe5b9050602002013587878581811061165a57fe5b905060200201602081019061166f91906123a1565b86868681811061167b57fe5b90506020020160208101906116909190612691565b6040518463ffffffff1660e01b81526004016116ae93929190612880565b600060405180830381600087803b1580156116c857600080fd5b505af11580156116dc573d6000803e3d6000fd5b5050600190920191506116049050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b15801561175257600080fd5b505afa158015611766573d6000803e3d6000fd5b505050506040513d602081101561177c57600080fd5b50516117bd576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b8281146117dc5760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498576040516362c03ee360e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5807dc69061183490600990600401612860565b60206040518083038186803b15801561184c57600080fd5b505afa158015611860573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188491906123c4565b6001600160a01b03166311b04cfa86868481811061189e57fe5b90506020020160208101906118b391906123a1565b8585858181106118bf57fe5b90506020020160208101906118d491906123a1565b6040518363ffffffff1660e01b81526004016118f19291906126bf565b600060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b5050600190920191506117df9050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b15801561199557600080fd5b505afa1580156119a9573d6000803e3d6000fd5b505050506040513d60208110156119bf57600080fd5b5051611a00576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b60005b8a811015611b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a540c19d8d8d84818110611a4657fe5b9050602002016020810190611a5b91906123a1565b8c8c8c8c8c8c8c8c8c6000806040518d63ffffffff1660e01b8152600401611a8e9c9b9a99989796959493929190612731565b600060405180830381600087803b158015611aa857600080fd5b505af1158015611abc573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f0d2d5a88d8d84818110611afb57fe5b9050602002016020810190611b1091906123a1565b6040518263ffffffff1660e01b8152600401611b2c91906126ab565b600060405180830381600087803b158015611b4657600080fd5b505af1158015611b5a573d6000803e3d6000fd5b505060019092019150611a039050565b505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600981565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b158015611c2b57600080fd5b505afa158015611c3f573d6000803e3d6000fd5b505050506040513d6020811015611c5557600080fd5b5051611c96576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b828114611cb55760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d709b4b0868684818110611cfb57fe5b9050602002016020810190611d1091906123a1565b858585818110611d1c57fe5b905060200201356040518363ffffffff1660e01b8152600401611d40929190612718565b600060405180830381600087803b158015611d5a57600080fd5b505af1158015611d6e573d6000803e3d6000fd5b505060019092019150611cb89050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b158015611e0857600080fd5b505afa158015611e1c573d6000803e3d6000fd5b505050506040513d6020811015611e3257600080fd5b5051611e73576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b808314611e925760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c73352dd868684818110611ed857fe5b9050602002810190611eea91906128a1565b868686818110611ef657fe5b905060200201356040518463ffffffff1660e01b8152600401611f1b939291906127c2565b600060405180830381600087803b158015611f3557600080fd5b505af1158015611f49573d6000803e3d6000fd5b505060019092019150611e959050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b158015611fbf57600080fd5b505afa158015611fd3573d6000803e3d6000fd5b505050506040513d6020811015611fe957600080fd5b505161202a576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b60005b8281101561218457816120dd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c99d3a0685858481811061207557fe5b905060200201602081019061208a91906123a1565b6040518263ffffffff1660e01b81526004016120a691906126ab565b600060405180830381600087803b1580156120c057600080fd5b505af11580156120d4573d6000803e3d6000fd5b5050505061217c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f0d2d5a885858481811061211857fe5b905060200201602081019061212d91906123a1565b6040518263ffffffff1660e01b815260040161214991906126ab565b600060405180830381600087803b15801561216357600080fd5b505af1158015612177573d6000803e3d6000fd5b505050505b60010161202d565b50505050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b1580156121f057600080fd5b505afa158015612204573d6000803e3d6000fd5b505050506040513d602081101561221a57600080fd5b505161225b576040805162461bcd60e51b815260206004820152601a6024820152600080516020612901833981519152604482015290519081900360640190fd5b82811461227a5760405162461bcd60e51b81526004016103c690612818565b60005b83811015610498577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf33bd4c8686848181106122c057fe5b90506020020160208101906122d591906123a1565b8585858181106122e157fe5b905060200201356040518363ffffffff1660e01b8152600401612305929190612718565b600060405180830381600087803b15801561231f57600080fd5b505af1158015612333573d6000803e3d6000fd5b50506001909201915061227d9050565b60008083601f840112612354578182fd5b50813567ffffffffffffffff81111561236b578182fd5b602083019150836020808302850101111561238557600080fd5b9250929050565b8035801515811461239c57600080fd5b919050565b6000602082840312156123b2578081fd5b81356123bd816128e8565b9392505050565b6000602082840312156123d5578081fd5b81516123bd816128e8565b600080600080604085870312156123f5578283fd5b843567ffffffffffffffff8082111561240c578485fd5b61241888838901612343565b90965094506020870135915080821115612430578384fd5b5061243d87828801612343565b95989497509550505050565b60008060008060008060608789031215612461578182fd5b863567ffffffffffffffff80821115612478578384fd5b6124848a838b01612343565b9098509650602089013591508082111561249c578384fd5b6124a88a838b01612343565b909650945060408901359150808211156124c0578384fd5b506124cd89828a01612343565b979a9699509497509295939492505050565b600080600080604085870312156124f4578384fd5b843567ffffffffffffffff8082111561240c578586fd5b60008060006040848603121561251f578283fd5b833567ffffffffffffffff811115612535578384fd5b61254186828701612343565b909450925061255490506020850161238c565b90509250925092565b60008060008060008060008060008060006101208c8e03121561257e578485fd5b67ffffffffffffffff808d351115612594578586fd5b6125a18e8e358f01612343565b909c509a5060208d0135995060408d0135985060608d0135975060808d0135965060a08d0135955060c08d0135945060e08d013593506101008d01358110156125e8578283fd5b506125fa8d6101008e01358e01612343565b81935080925050509295989b509295989b9093969950565b60008060008060408587031215612627578182fd5b843567ffffffffffffffff8082111561240c578384fd5b60008060008060008060608789031215612656578384fd5b863567ffffffffffffffff8082111561266d578586fd5b6126798a838b01612343565b9098509650602089013591508082111561249c578586fd5b6000602082840312156126a2578081fd5b6123bd8261238c565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039290921682521515602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038d168152602081018c9052604081018b9052606081018a90526080810189905260a0810188905260c0810187905260e081018690526101606101008201819052810184905260006101806001600160fb1b03861115612796578182fd5b6020860280888386013783010190815261012082019390935261014001529a9950505050505050505050565b6040808252810183905260008460608301825b868110156128055782356127e8816128e8565b6001600160a01b03168252602092830192909101906001016127d5565b5060209390930193909352509392505050565b60208082526028908201527f556e69742050726f746f636f6c3a20415247554d454e54535f4c454e4754485f60408201526709a92a69a82a886960c31b606082015260800190565b90815260200190565b9182526001600160a01b0316602082015260400190565b9283526001600160a01b039190911660208301521515604082015260600190565b6000808335601e198436030181126128b7578283fd5b83018035915067ffffffffffffffff8211156128d1578283fd5b602090810192508102360382131561238557600080fd5b6001600160a01b03811681146128fd57600080fd5b5056fe556e69742050726f746f636f6c3a20415554485f4641494c4544000000000000a2646970667358221220319fe03e6122fae8805e96186e2bfbf3bf897e3097a12fa749de343d1aa1428364736f6c634300070600330000000000000000000000001c7aea8b6498f0854d1fce542a27ed6a10d71d2f0000000000000000000000000058ab54d4405d8084e8d71b8ab36b3091b21c7d0000000000000000000000005bef93a96dcc2caec92e8610bb2f5bf5eb4d89f4

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000001c7aea8b6498f0854d1fce542a27ed6a10d71d2f0000000000000000000000000058ab54d4405d8084e8d71b8ab36b3091b21c7d0000000000000000000000005bef93a96dcc2caec92e8610bb2f5bf5eb4d89f4

-----Decoded View---------------
Arg [0] : _vaultManagerParameters (address): 0x1c7aea8b6498f0854d1fce542a27ed6a10d71d2f
Arg [1] : _oracleRegistry (address): 0x0058ab54d4405d8084e8d71b8ab36b3091b21c7d
Arg [2] : _collateralRegistry (address): 0x5bef93a96dcc2caec92e8610bb2f5bf5eb4d89f4

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000001c7aea8b6498f0854d1fce542a27ed6a10d71d2f
Arg [1] : 0000000000000000000000000058ab54d4405d8084e8d71b8ab36b3091b21c7d
Arg [2] : 0000000000000000000000005bef93a96dcc2caec92e8610bb2f5bf5eb4d89f4


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.