Skip to content

IFluidVaultFactory_OwnerWrapper ​

Git Source

VaultFactoryOwner — owner wrapper for FluidVaultFactory that gates position transfers. Purpose: Sits as owner of VaultFactory. Passes through all admin methods to governance unchanged. Adds two restricted methods that can move position NFTs to the team multisig:

  • transferPosition: for allowlisted vault IDs, callable by team / governance.
  • transferDustPosition: for tiny (<1e5 raw debt) and risky (>=50% LTV) positions, callable by dustPosAuths / team / governance. Access control (3 tiers): governance (= Liquidity proxy admin) → full factory admin + config + all transfers team multisig → transferPosition, transferDustPosition (skip ratio check) dustPosAuths → transferDustPosition only (must pass ratio check) Transfer mechanism:
  1. spellApprove() delegatecalled via factory.spell() → sets getApproved[tokenId] = this
  2. factory.transferFrom(from, team, tokenId) → executes ERC721 transfer
  3. transferFrom clears approval atomically → no lingering approval Key thresholds: DEBT_THRESHOLD = 1e5 positions with raw debt > this cannot be dust-transferred RATIO_THRESHOLD = 500 50% LTV; dustPosAuths can only move positions at or above this ratio

Functions ​

readFromStorage ​

solidity
function readFromStorage(bytes32 slot_) external view returns (uint256 result_);

getVaultAddress ​

solidity
function getVaultAddress(uint256 vaultId_) external view returns (address vault_);

isVault ​

solidity
function isVault(address vault_) external view returns (bool);

transferFrom ​

solidity
function transferFrom(address from_, address to_, uint256 id_) external;

setDeployer ​

solidity
function setDeployer(address deployer_, bool allowed_) external;

setGlobalAuth ​

solidity
function setGlobalAuth(address globalAuth_, bool allowed_) external;

setVaultAuth ​

solidity
function setVaultAuth(address vault_, address vaultAuth_, bool allowed_) external;

setVaultDeploymentLogic ​

solidity
function setVaultDeploymentLogic(address deploymentLogic_, bool allowed_) external;

spell ​

solidity
function spell(address target_, bytes memory data_) external returns (bytes memory response_);

transferOwnership ​

solidity
function transferOwnership(address newOwner) external;