Contract Overview
Balance:
0 FTM
FTM Value:
$0.00
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0xf666399c9eda39ff29225f5c5bf0fcce8131adea40dfe134a1f57172077d4fc0 | 19743512 | 472 days 14 hrs ago | 0x55d56e1bb2fc8280a775ccfe9ececcecf1a01562 | Contract Creation | 0 FTM |
[ Download CSV Export ]
Contract Name:
LiquidationAuction02
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)
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity 0.7.6; import '../interfaces/IOracleRegistry.sol'; import '../interfaces/IVault.sol'; import '../interfaces/ICDPRegistry.sol'; import '../interfaces/IVaultManagerParameters.sol'; import '../interfaces/IVaultParameters.sol'; import '../interfaces/IWrappedToUnderlyingOracle.sol'; import '../interfaces/IForceTransferAssetStore.sol'; import '../interfaces/IFoundation.sol'; import '../helpers/ReentrancyGuard.sol'; import '../helpers/SafeMath.sol'; /** * @title LiquidationAuction02 **/ contract LiquidationAuction02 is ReentrancyGuard { using SafeMath for uint; IVault public immutable vault; IVaultManagerParameters public immutable vaultManagerParameters; ICDPRegistry public immutable cdpRegistry; IForceTransferAssetStore public immutable forceTransferAssetStore; bool public immutable notifyFoundation; uint public constant DENOMINATOR_1E2 = 1e2; uint public constant WRAPPED_TO_UNDERLYING_ORACLE_TYPE = 11; /** * @dev Trigger when buyouts are happened **/ event Buyout(address indexed asset, address indexed owner, address indexed buyer, uint amount, uint price, uint penalty); modifier checkpoint(address asset, address owner) { _; cdpRegistry.checkpoint(asset, owner); } /** * @param _vaultManagerParameters The address of the contract with Vault manager parameters * @param _cdpRegistry The address of the CDP registry * @param _forceTransferAssetStore The address of the ForceTransferAssetStore **/ constructor(address _vaultManagerParameters, address _cdpRegistry, address _forceTransferAssetStore, bool _notifyFoundation) { require( _vaultManagerParameters != address(0) && _forceTransferAssetStore != (address(0)), "Unit Protocol: INVALID_ARGS" ); vaultManagerParameters = IVaultManagerParameters(_vaultManagerParameters); vault = IVault(IVaultParameters(IVaultManagerParameters(_vaultManagerParameters).vaultParameters()).vault()); cdpRegistry = ICDPRegistry(_cdpRegistry); forceTransferAssetStore = IForceTransferAssetStore(_forceTransferAssetStore); notifyFoundation = _notifyFoundation; } /** * @dev Buyouts a position's collateral * @param asset The address of the main collateral token of a position * @param owner The owner of a position **/ function buyout(address asset, address owner) public nonReentrant checkpoint(asset, owner) { require(vault.liquidationBlock(asset, owner) != 0, "Unit Protocol: LIQUIDATION_NOT_TRIGGERED"); uint startingPrice = vault.liquidationPrice(asset, owner); uint blocksPast = block.number.sub(vault.liquidationBlock(asset, owner)); uint depreciationPeriod = vaultManagerParameters.devaluationPeriod(asset); uint debt = vault.getTotalDebt(asset, owner); uint penalty = debt.mul(vault.liquidationFee(asset, owner)).div(DENOMINATOR_1E2); uint collateralInPosition = vault.collaterals(asset, owner); uint collateralToLiquidator; uint collateralToOwner; uint repayment; (collateralToLiquidator, collateralToOwner, repayment) = _calcLiquidationParams( depreciationPeriod, blocksPast, startingPrice, debt.add(penalty), collateralInPosition ); // ensure that at least 1 unit of token is transferred to cdp owner if (collateralToOwner == 0 && forceTransferAssetStore.shouldForceTransfer(asset)) { collateralToOwner = 1; collateralToLiquidator = collateralToLiquidator.sub(1); } _liquidate( asset, owner, collateralToLiquidator, collateralToOwner, repayment, penalty ); } function _liquidate( address asset, address user, uint collateralToBuyer, uint collateralToOwner, uint repayment, uint penalty ) private { // send liquidation command to the Vault vault.liquidate( asset, user, collateralToBuyer, collateralToOwner, repayment, penalty, msg.sender ); if (notifyFoundation) { uint fee = repayment > penalty ? penalty : repayment; IFoundation(IVaultParameters(vaultManagerParameters.vaultParameters()).foundation()).submitLiquidationFee(fee); } // fire an buyout event emit Buyout(asset, user, msg.sender, collateralToBuyer, repayment, penalty); } function _calcLiquidationParams( uint depreciationPeriod, uint blocksPast, uint startingPrice, uint debtWithPenalty, uint collateralInPosition ) internal pure returns( uint collateralToBuyer, uint collateralToOwner, uint price ) { if (depreciationPeriod > blocksPast) { uint valuation = depreciationPeriod.sub(blocksPast); uint collateralPrice = startingPrice.mul(valuation).div(depreciationPeriod); if (collateralPrice > debtWithPenalty) { collateralToBuyer = collateralInPosition.mul(debtWithPenalty).div(collateralPrice); collateralToOwner = collateralInPosition.sub(collateralToBuyer); price = debtWithPenalty; } else { collateralToBuyer = collateralInPosition; price = collateralPrice; } } else { collateralToBuyer = collateralInPosition; } } }
// 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 ); }
// 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; }
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity ^0.7.6; pragma experimental ABIEncoderV2; interface ICDPRegistry { struct CDP { address asset; address owner; } function batchCheckpoint ( address[] calldata assets, address[] calldata owners ) external; function batchCheckpointForAsset ( address asset, address[] calldata owners ) external; function checkpoint ( address asset, address owner ) external; function cr ( ) external view returns ( address ); function getAllCdps ( ) external view returns ( CDP[] memory r ); function getCdpsByCollateral ( address asset ) external view returns ( CDP[] memory cdps ); function getCdpsByOwner ( address owner ) external view returns ( CDP[] memory r ); function getCdpsCount ( ) external view returns ( uint256 totalCdpCount ); function getCdpsCountForCollateral ( address asset ) external view returns ( uint256 ); function isAlive ( address asset, address owner ) external view returns ( bool ); function isListed ( address asset, address owner ) external view returns ( bool ); function vault ( ) external view returns ( address ); }
// 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 ); }
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity ^0.7.6; interface IVaultParameters { function canModifyVault ( address ) external view returns ( bool ); function foundation ( ) external view returns ( address ); function isManager ( address ) external view returns ( bool ); function isOracleTypeEnabled ( uint256, address ) external view returns ( bool ); function liquidationFee ( address ) external view returns ( uint256 ); function setCollateral ( address asset, uint256 stabilityFeeValue, uint256 liquidationFeeValue, uint256 usdpLimit, uint256[] calldata oracles ) external; function setFoundation ( address newFoundation ) external; function setLiquidationFee ( address asset, uint256 newValue ) external; function setManager ( address who, bool permit ) external; function setOracleType ( uint256 _type, address asset, bool enabled ) external; function setStabilityFee ( address asset, uint256 newValue ) external; function setTokenDebtLimit ( address asset, uint256 limit ) external; function setVaultAccess ( address who, bool permit ) external; function stabilityFee ( address ) external view returns ( uint256 ); function tokenDebtLimit ( address ) external view returns ( uint256 ); function vault ( ) external view returns ( address ); function vaultParameters ( ) external view returns ( address ); }
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity ^0.7.6; interface IWrappedToUnderlyingOracle { function assetToUnderlying(address) external view returns (address); }
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity ^0.7.6; interface IForceTransferAssetStore { function shouldForceTransfer ( address ) external view returns ( bool ); function add ( address asset ) external; }
// SPDX-License-Identifier: bsl-1.1 pragma solidity ^0.7.6; interface IFoundation { function submitLiquidationFee(uint fee) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.7.6; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor () { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity 0.7.6; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath: division by zero"); return a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_vaultManagerParameters","type":"address"},{"internalType":"address","name":"_cdpRegistry","type":"address"},{"internalType":"address","name":"_forceTransferAssetStore","type":"address"},{"internalType":"bool","name":"_notifyFoundation","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"penalty","type":"uint256"}],"name":"Buyout","type":"event"},{"inputs":[],"name":"DENOMINATOR_1E2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WRAPPED_TO_UNDERLYING_ORACLE_TYPE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"buyout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cdpRegistry","outputs":[{"internalType":"contract ICDPRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forceTransferAssetStore","outputs":[{"internalType":"contract IForceTransferAssetStore","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notifyFoundation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"contract IVault","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vaultManagerParameters","outputs":[{"internalType":"contract IVaultManagerParameters","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
61012060405234801561001157600080fd5b50604051610f5a380380610f5a8339818101604052608081101561003457600080fd5b508051602082015160408301516060909301516001600055919290916001600160a01b0384161580159061007057506001600160a01b03821615155b6100c1576040805162461bcd60e51b815260206004820152601b60248201527f556e69742050726f746f636f6c3a20494e56414c49445f415247530000000000604482015290519081900360640190fd5b836001600160a01b031660a0816001600160a01b031660601b81525050836001600160a01b031663aca345ee6040518163ffffffff1660e01b815260040160206040518083038186803b15801561011757600080fd5b505afa15801561012b573d6000803e3d6000fd5b505050506040513d602081101561014157600080fd5b50516040805163fbfa77cf60e01b815290516001600160a01b039092169163fbfa77cf91600480820192602092909190829003018186803b15801561018557600080fd5b505afa158015610199573d6000803e3d6000fd5b505050506040513d60208110156101af57600080fd5b5051606081811b6001600160601b031990811660805285821b811660c05284821b1660e05291151560f881901b6101005260a0516001600160a01b03928316965090921c93811692169060ff16610cf36102676000398061088d5280610aac5250806106b2528061081c52508061077952806108455250806103dd52806108695280610ae552508061019b5280610282528061035e52806104a4528061055452806105dc52806108b15280610a485250610cf36000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b7ebdc0c1161005b578063b7ebdc0c14610103578063d4f0d9ee1461010b578063fbfa77cf14610127578063feb01ba71461012f57610088565b806316e78ac91461008d5780632bbf60bc146100bd57806340f626e3146100e1578063ab2a2a82146100fb575b600080fd5b6100bb600480360360408110156100a357600080fd5b506001600160a01b0381358116916020013516610137565b005b6100c561081a565b604080516001600160a01b039092168252519081900360200190f35b6100e961083e565b60408051918252519081900360200190f35b6100c5610843565b6100c5610867565b61011361088b565b604080519115158252519081900360200190f35b6100c56108af565b6100e96108d3565b6002600054141561018f576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260008190555081817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631ce4b4a785856040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561021757600080fd5b505afa15801561022b573d6000803e3d6000fd5b505050506040513d602081101561024157600080fd5b505161027e5760405162461bcd60e51b8152600401808060200182810382526028815260200180610c966028913960400191505060405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630fbac4e686866040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b505160408051631ce4b4a760e01b81526001600160a01b038881166004830152878116602483015291519293506000926103d7927f00000000000000000000000000000000000000000000000000000000000000001691631ce4b4a7916044808301926020929190829003018186803b1580156103a457600080fd5b505afa1580156103b8573d6000803e3d6000fd5b505050506040513d60208110156103ce57600080fd5b505143906108d8565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630aaddb50886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561044857600080fd5b505afa15801561045c573d6000803e3d6000fd5b505050506040513d602081101561047257600080fd5b50516040805163d6446d4360e01b81526001600160a01b038a81166004830152898116602483015291519293506000927f00000000000000000000000000000000000000000000000000000000000000009092169163d6446d4391604480820192602092909190829003018186803b1580156104ed57600080fd5b505afa158015610501573d6000803e3d6000fd5b505050506040513d602081101561051757600080fd5b50516040805163554e160b60e11b81526001600160a01b038b811660048301528a8116602483015291519293506000926105d6926064926105d0927f00000000000000000000000000000000000000000000000000000000000000009092169163aa9c2c1691604480820192602092909190829003018186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050506040513d60208110156105c757600080fd5b505185906108ef565b90610914565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e51e119e8b8b6040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561065857600080fd5b505afa15801561066c573d6000803e3d6000fd5b505050506040513d602081101561068257600080fd5b50519050600080806106a087898b61069a8a8a610979565b88610986565b919450925090508115801561074a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166311f2e4ca8e6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561071d57600080fd5b505afa158015610731573d6000803e3d6000fd5b505050506040513d602081101561074757600080fd5b50515b15610760576001915061075d83836108d8565b92505b61076e8d8d8585858a6109fc565b5050505050505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bb55b7fc83836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b0316815260200192505050600060405180830381600087803b1580156107f757600080fd5b505af115801561080b573d6000803e3d6000fd5b50506001600055505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b606481565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b81565b6000828211156108e457fe5b508082035b92915050565b6000826108fe575060006108e9565b508181028183828161090c57fe5b04146108e957fe5b600081610968576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161097157fe5b049392505050565b818101828110156108e957fe5b6000806000868811156109ed57600061099f89896108d8565b905060006109b18a6105d08a856108ef565b9050868111156109df576109c9816105d0888a6108ef565b94506109d586866108d8565b93508692506109e6565b8594508092505b50506109f1565b8392505b955095509592505050565b60408051639ffb62eb60e01b81526001600160a01b038881166004830152878116602483015260448201879052606482018690526084820185905260a482018490523360c483015291517f000000000000000000000000000000000000000000000000000000000000000090921691639ffb62eb9160e48082019260009290919082900301818387803b158015610a9257600080fd5b505af1158015610aa6573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000015610c3a576000818311610adf5782610ae1565b815b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663aca345ee6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3c57600080fd5b505afa158015610b50573d6000803e3d6000fd5b505050506040513d6020811015610b6657600080fd5b50516040805163041fbb0560e41b815290516001600160a01b03909216916341fbb05091600480820192602092909190829003018186803b158015610baa57600080fd5b505afa158015610bbe573d6000803e3d6000fd5b505050506040513d6020811015610bd457600080fd5b5051604080516354bf173f60e01b81526004810184905290516001600160a01b03909216916354bf173f9160248082019260009290919082900301818387803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b50505050505b6040805185815260208101849052808201839052905133916001600160a01b0388811692908a16917f4bafc1b25a3e727ead9384f3708c85489bdad9585fb211bbae2f76cf68d97339919081900360600190a450505050505056fe556e69742050726f746f636f6c3a204c49515549444154494f4e5f4e4f545f545249474745524544a2646970667358221220b4a8be1232ae670a24fe792d680176fbead362c39682bd8ae25bd39c4192f9fb64736f6c634300070600330000000000000000000000001c7aea8b6498f0854d1fce542a27ed6a10d71d2f0000000000000000000000001442bc024a92c2f96c3c1d2e9274bc4d8119d97e000000000000000000000000828bb32afa0ecf70c4f65393664e4a79664d9bd30000000000000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001c7aea8b6498f0854d1fce542a27ed6a10d71d2f0000000000000000000000001442bc024a92c2f96c3c1d2e9274bc4d8119d97e000000000000000000000000828bb32afa0ecf70c4f65393664e4a79664d9bd30000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _vaultManagerParameters (address): 0x1c7aea8b6498f0854d1fce542a27ed6a10d71d2f
Arg [1] : _cdpRegistry (address): 0x1442bc024a92c2f96c3c1d2e9274bc4d8119d97e
Arg [2] : _forceTransferAssetStore (address): 0x828bb32afa0ecf70c4f65393664e4a79664d9bd3
Arg [3] : _notifyFoundation (bool): False
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000001c7aea8b6498f0854d1fce542a27ed6a10d71d2f
Arg [1] : 0000000000000000000000001442bc024a92c2f96c3c1d2e9274bc4d8119d97e
Arg [2] : 000000000000000000000000828bb32afa0ecf70c4f65393664e4a79664d9bd3
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
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 |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.