Skip to main content

Univ3CollateralToken

Overview

Univ3CollateralToken is a wrapped Uniswap V3 position, allowing Interest Protocol use it as collateral. There should generally exist only one of these on a given network, as the underlying will always be the Uniswap V3 NonFungiblePositionManager, regardless of the pool the position represents.

Initialize

function initialize(
string memory name_,
string memory symbol_,
address underlying_,
address vaultController_,
address nftVaultController_,
address positionValuator_
) public initializer {
__Ownable_init();
__ERC20_init(name_, symbol_);


_underlying = INonfungiblePositionManager(underlying_);
_positionValuator = V3PositionValuator(positionValuator_);
_vaultController = IVaultController(vaultController_);
_nftVaultController = NftVaultController(nftVaultController_);
locked = false;
}

Functions

  • function deposit(uint256 amount, uint96 vaultId) public
    • transfers the underlying token to the sub-vault (nft vault) and transfers the wrapped token to the parent vault
  • function transfer(address recipient, uint256 amount) public
    • supports the withdraw of the wrapped token for the underlying token when the vault owner calls withdraw on the parent vault
  • function transferFrom(address, address, uint256)
    • explicitly overrides from being used
  • function renounceOwnership() public virtual onlyOwner
    • leaves the contract without owner
  • function transferOwnership(address newOwner) public virtual onlyOwner
    • transfers ownership of the contract to a new account
  • function balanceOf(address account) public
    • returns the balance of an address
  • function name() external view
    • returns string
  • function symbol() external view
    • returns string
  • function totalSupply() public
    • total supply of wrapped tokens