FluidVaultT1DeploymentLogic

Git Source

Inherits:Error

State Variables

NATIVE_TOKEN

address internal constant NATIVE_TOKEN = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;

VAULT_T1_CREATIONCODE_ADDRESS

SSTORE2 pointer for the VaultT1 creation code. Stored externally to reduce factory bytecode

address public immutable VAULT_T1_CREATIONCODE_ADDRESS;

LIQUIDITY

address of liquidity contract

address public immutable LIQUIDITY;

ADMIN_IMPLEMENTATION

address of Admin implementation

address public immutable ADMIN_IMPLEMENTATION;

SECONDARY_IMPLEMENTATION

address of Secondary implementation

address public immutable SECONDARY_IMPLEMENTATION;

ADDRESS_THIS

address of this contract

address public immutable ADDRESS_THIS;

Functions

constructor

constructor(address liquidity_, address vaultAdminImplementation_, address vaultSecondaryImplementation_);

_calculateLiquidityVaultSlots

Calculates the liquidity vault slots for the given supply token, borrow token, and vault (vault_).

function _calculateLiquidityVaultSlots(IFluidVaultT1.ConstantViews memory constants_, address vault_)
    private
    pure
    returns (IFluidVaultT1.ConstantViews memory);

Parameters

NameTypeDescription
constants_IFluidVaultT1.ConstantViewsConstants struct as used in Vault T1
vault_addressThe address of the vault.

Returns

NameTypeDescription
<none>IFluidVaultT1.ConstantViewsliquidityVaultSlots_ Returns the calculated liquidity vault slots set in the IFluidVaultT1.ConstantViews struct.

vaultT1

Computes vaultT1 bytecode for the given supply token (supplyToken_) and borrow token (borrowToken_). This will be called by the VaultFactory via .delegateCall

function vaultT1(address supplyToken_, address borrowToken_) external returns (bytes memory vaultCreationBytecode_);

Parameters

NameTypeDescription
supplyToken_addressThe address of the supply token.
borrowToken_addressThe address of the borrow token.

Returns

NameTypeDescription
vaultCreationBytecode_bytesReturns the bytecode of the new vault to deploy.

Events

VaultT1Deployed

Emitted when a new vaultT1 is deployed.

event VaultT1Deployed(address indexed vault, uint256 vaultId, address indexed supplyToken, address indexed borrowToken);

Parameters

NameTypeDescription
vaultaddressThe address of the newly deployed vault.
vaultIduint256The id of the newly deployed vault.
supplyTokenaddressThe address of the supply token.
borrowTokenaddressThe address of the borrow token.