Note Contract
NoteV2
Interface
Events
Subscription(uint256 fundId,address user,uint256 amount,uint256 fee)
User subscription
param | description |
---|---|
fundId | fundId |
user | subscription user |
amount | subscription amount |
fee | fee |
EarlyRedemption(uint256 fundId, address user, uint256 amount)
Redemption before expiration
param | description |
---|---|
fundId | fundId |
user | redemption user |
amount | redemption amount |
Redemption(uint256 fundId, address user, uint256 amount)
Redemption on maturity
param | description |
---|---|
fundId | fundId |
user | redemption user |
amount | redemption amount |
FixedInvestmentMint(uint256 fundId, uint256 payAmount, uint256 cToken)
Invest compound
param | description |
---|---|
fundId | fundId |
payAmount | amount of invest |
cToken | amount of ctoken |
FixedInvestmentRedeem(uint256 fundId, uint256 payAmount, uint256 cToken)
Withdraw the amount of invest compound
param | description |
---|---|
fundId | fundId |
payAmount | withdraw the amount of usdt |
cToken | send cusdt data |
OptionOpen(uint256 fundId,uint256 indexNo,uint8 poolId, uint256 orderNo)
Invest option
param | description |
---|---|
fundId | fundId |
orderNo | orderNo |
OptionExercise(uint256 fundId, uint256 orderNo,uint256 position,uint256 income, bool isKnockout)
Withdraw the amount of invest option
Invest option
param | description |
---|---|
fundId | fundId |
orderNo | orderNo |
position | position |
income | withdraw the amount of usdt |
isKnockout | is knockout |
OptionClose(uint256 fundId,uint256 orderNo,uint256 position,uint256 income)
Option exercise
param | description |
---|---|
fundId | fundId |
orderNo | orderNo |
position | position |
income | withdraw the amount of usdt |
NewFund(uint256 fundId)
New fund
FundClosed( uint256 fundId, uint256 totalIncome, uint256[2] managerProfit)
Fund closed
param | description |
---|---|
fundId | fundId |
totalIncome | total income |
managerProfit[0] | performance fee |
managerProfit[1] | manager profit |
FundCanceled(uint256 fundId)
Fund canceled
SetManager(address manager, bool isManager)
Set manager rights
Methods(Read Contract)
1. User Balance
mapping(address => mapping(uint256 => uint256)) public userBalance
The amount of user invested
param | type | description |
---|---|---|
user | address | user address |
fundId | uint256 | fundId |
return | type | description |
---|---|---|
balance | uint256 | balance |
1.Pay Token
IERC20 public immutable payToken
View payment token
2. Option Order
mapping(uint256 => mapping(uint8 => mapping(uint256 => uint256))) public optionOrder
View fundId that map with option contract
param | type | description |
---|---|---|
indexNo | uint256 | indexNo |
pool_id | uint8 | pool_id |
order_no | uint256 | order_no |
return | type | description |
---|---|---|
fundId | uint256 | fundId |
3. Cycle Day
uint8[3] public cycleDay
**Cycle day,unit/day **
param | type | description |
---|---|---|
index | uint8 | index,option: 0,1,2 |
return | type | description |
---|---|---|
day | uint256 | days |
4. Manager
mapping(address => bool) public manager
Whether is manager
param | type | description |
---|---|---|
address | address | query address |
return | type | description |
---|---|---|
isManager | bool | whether is manager |
5. Fund List
**Fund details **
param | type | description |
---|---|---|
fundId | uint256 | fundId |
return | type | description |
---|---|---|
buyTime | uint256 | buy time |
investTime | uint256 | the start time of fund closed |
endTime | uint256 | end time |
balance | uint256 | note balance |
optionPercent | uint256 | During manager invests, optionPercent =optionPercent/10000 |
totalfunds | uint256 | The user's total investment amount, after the fund manager starts to invest, the value is not 0, after the closing period, the value has been determined |
profitPerShare | uint256 | After the end of the product, each user token can receive the amount, the value has been amplified by 1E18 times |
manager | address | fund manager |
status | uint8 | Fund status,1 initial state, waiting to invest or investing,2 investing,3 closed, 4 cancelled |
6. Get Fund
function getFund(uint256 _fundId) external view returns (uint256[2] memory funds, uint256[2] memory position)
Get fund investment situation
param | type | description |
---|---|---|
_fundId | uint256 | _fundId |
return | type | description |
---|---|---|
funds[0] | uint256[2] | Amount of investible options |
funds[1] | uint256[2] | Amount of investible compounds |
position[0] | uint256[2] | Total option position |
position[1] | uint256[2] | Amount of compound ctoken |
7. Manager
mapping(address => bool) public manager
Whether is fund manager
param | type | description |
---|---|---|
address | address | query address |
return | type | description |
---|---|---|
isManager | bool | whether is manager |
Methods(Write Contract)
1. Subscription
function subscription(uint256 _fundId, uint256 _amount) external
Invest fund
param | type | description |
---|---|---|
_fundId | uint256 | _fundId |
_amount | uint256 | purchase amount |
2. Partial Redemption
function partialRedemption(uint256 _fundId, uint256 _amount) external
Redemotion before closed
param | type | description |
---|---|---|
_noteId | uint256 | _noteId |
_amount | uint256 | the amount of user withdraw |
3. Redemption
function redemption(uint256 _fundId) external
**Redemption at expiration **
param | type | description |
---|---|---|
_fundId | uint256 | _fundId |
Fund manager operations
4. Add Fund
function addFund( uint256 _buyTime, uint256 _investTime, uint8 _cycleIndex, uint256 _optionPercent )
**Add fund product **
param | type | description |
---|---|---|
_buyTime | uint256 | buy time |
_investTime | uint256 | beginning of closure |
_cycleIndex | uint8 | cycleDay[3] fund cycle,0:30days,1:60days,2:90days |
_optionPercent | uint256 | option percent |
5.Cancel Note
function cancelFund(uint256 _fundId) external
**Cancel note **
param | type | description |
---|---|---|
_fundId | uint256 | _fundId,close note products only before users start investing |
6. Close Fund
function closeFund(uint256 _fundId) external
After the expiration, close the fund, and then user can be redeemed, at the same time the fund manager gains
7. Invest Option
function optionOpen( uint256 _fundId, uint256 _indexNo,uint8 _poolId, uint256 _position, bool _isCall, uint256 _price, uint256 _datetime, bytes calldata _signData ) external
Invest option
param | type | description |
---|---|---|
_fundId | uint256 | fundId |
_indexNo | uint256 | indexNo |
_poolId | uint256 | poolId |
_position | uint256 | option position |
_isCall | bool | buy direction,true is call,false is put |
_price | uint256 | buy price |
_datetime | uint256 | buy time |
signData | bytes | buy price and time signature |
8.Fixed Investment Mint
function fixedInvestmentMint(uint256 _fundId, uint256 _amount) external
Invest compound
param | type | description |
---|---|---|
_fundId | uint256 | fundId |
_amount | uint256 | the amount of token |
9. Fixed Investment Redeem
function fixedInvestmentRedeem(uint256 _fundId, uint256 _cTokenAmount)
**Withdraw compound **
param | type | description |
---|---|---|
_fundId | uint256 | fundId |
_amount | uint256 | the amount of ctoken |
10. Withdraw Option
function optionClose( uint256 _fundId, uint256 _orderNo, uint256 _position, uint256 _price, uint256 _datetime, bytes calldata _signData ) external
Withdraw option
param | type | description |
---|---|---|
_fundId | uint256 | fundId |
_orderNo | uint256 | option contract id |
_position | uint256 | option number |
_price | uint256 | buy price |
_datetime | uint256 | buy time |
signData | bytes | buy time and buy signature |
11. Option Exercise
function optionExercise(uint256 _fundId,uint256 _indexNo, uint8 _poolId, uint256 _orderNo, bool _isKnockOut ) external
Option exercise at expiration
param | type | description |
---|---|---|
_noteId | uint256 | noteId |
_indexNo | uint256 | indexNo |
_poolId | uint256 | poolId |
_orderNo | uint256 | option contract id |
_isKnockout | uint256 | whether is konckout |
Last updated