Technical Principles
Contract External Method

Contract external method

FundManager

createFund

create fund

anyone can call

parameterstypedescription
namestringfund name
underlyingTokenaddressUnderlying Token used for fund purchase, valuation, and redemption
allowPositionboolfund support liquidity pools
allowedTokensaddress[]List of tokens that the fund supports exchange
managementFeeuint16Management fee rate (annual)
carriedInterestuint16Carry ratio
gpaddressFund's GP
operatorsaddress[]A list of Operators for the fund
firstBuyMinAmountuint256The minimum value of the fund's initial subscription
isPublicboolfund public or private
maxLpCountuint16The maximum number of LPs allowed by the fund (valid only for public funds)
allowedLpsaddress[]List of LPs allowed by the fund (only valid for non-public funds)
lockTimeuint32Time frame for funds to waive redemption fees
lockFeeuint16Fund redemption fee rate

updateName

Update fund name

Only fund GP can call

parameterstypedescription
fundaddressfund address
namestringfund's new name

updateOperators

Update the list of operators allowed by the fund

Only fund GP can call

parameterstypedescription
fundaddressfund address
operatorsaddress[]List of new Operators for funds

updateAssetPriority

Update the automatic sale priority of assets in the fund

Only fund GP can call

parameterstypedescription
fundaddressfund address
tokensaddress[]List of tokens that need to be updated
values0uint256[]A list of priority values corresponding to the above
positionsuint256[]A list of positions that need to be updated
values1uint256[]A list of priority values corresponding to the above

executeOrder

Funds execute external calls (currently only supports Uniswap V3’s exchange and liquidity pools)

Fund GP, Operator, and official limit order addresses can be called

parameterstypedescription
fundaddressfund address
targetaddressThe contract address of the external call
databytescalldata for external calls
valueuint256ETH transfer value for external calls
makeraddressLimit order originator (for limit orders only)

FundProxy

updateFirstBuyMinAmount

Update the minimum value of the fund's initial subscription

Only fund GP can call

parameterstypedescription
fundaddressfund address
valueuint256new value

updateMaxLpCount

Update the maximum number of LPs allowed by the fund (valid only for public funds)

Only fund GP can call

parameterstypedescription
fundaddressfund address
valueuint16new value

updateAllowLps

Update the list of LPs allowed by the fund (only valid for non-public funds)

Only fund GP can call

parameterstypedescription
fundaddressfund address
lpsaddress[]new list

collect

charge fund management fees

Only fund GP can call

parameterstypedescription
fundaddressfund address

buy

fund purchase

Public funds: the maximum number of LPs allowed is not exceeded

Non-public funds: the caller is in the list of LPs allowed to buy

parameterstypedescription
fundaddressfund address
amountuint256buy amount

updateStopLoss

update stopLoss

Only fund LPs can call

parameterstypedescription
fundaddressfund address
valueuint24new stoploss

sell

Fund redemption

Only fund LPs can call

parameterstypedescription
fundaddressfund address
lpaddressLP address that needs to be redeemed
ratiouint256Ratio to Redeem
minPriorityuint256Assets with a priority above this value will be sold in full; assets equal to this value will be sold in part
lastRatiouint256sold ratio
pathsbytes[]Conversion path for converting Token to UnderlyingToken
feeuint24The fee rate corresponding to the path of converting UnderlyingToken to WETH (only for gas fee reimbursement)