Fee
Var | Type |
---|---|
userTotalAmount | mapping(address => uint256) |
userUsage | mapping(address => struct IFee.UsageInfo) |
userDeposit | mapping(address => mapping(address => struct IFee.DepositInfo)) |
totalAmount | uint256 |
No description
Declaration:
function constructor(
) public Only
Modifiers:
Modifier |
---|
Only |
Deposit amount to target user.
Declaration:
function deposit(
address user
) external nonReentrant
Modifiers:
Modifier |
---|
nonReentrant |
Args:
Arg | Type | Description |
---|---|---|
user | address | Target user address |
Withdraw amount from target user.
Declaration:
function withdraw(
address user,
uint256 desiredAmount,
uint256 minAmount
) external nonReentrant
Modifiers:
Modifier |
---|
nonReentrant |
Args:
Arg | Type | Description |
---|---|---|
user | address | Target user address |
desiredAmount | uint256 | Desired withdraw amount |
minAmount | uint256 | Min withdraw amount |
Estimate wtihdrawable timestamp, if the estimation fails, return 0.
Declaration:
function estimateWithdrawableTimestamp(
address user,
address from
) external returns (uint256 timestamp)
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
user | address | Target user address |
from | address | From user address |
Estimate wtihdrawable amount.
Declaration:
function estimateWithdrawableAmount(
address user,
uint256 timestamp
) public returns (uint256)
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
user | address | Target user address |
timestamp | uint256 | Current timestamp |
Estimate user fee.
userFee = userTotalAmount * dailyFee / totalAmount - userUsage
Declaration:
function estimateFee(
address user,
uint256 timestamp
) public returns (uint256 fee)
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
user | address | User address |
timestamp | uint256 | Current timestamp |
Estimate user usage
T: current timestamp
T': last timestamp
userUsage': last fee usage
if T - T' < feeRecoverInterval
userUsage = (1 - (T - T') / feeRecoverInterval) * userUsage'
else
userUsage = 0
Declaration:
function estimateUsage(
struct IFee.UsageInfo ui,
uint256 timestamp
) public returns (uint256 usage)
Modifiers: No modifiers
Args:
Arg | Type | Description |
---|---|---|
ui | struct IFee.UsageInfo | Usage information |
timestamp | uint256 | Current timestamp |
Consume user fee, can only be called by the system caller.
Declaration:
function consume(
address user,
uint256 usage
) external nonReentrant onlyRouter
Modifiers:
Modifier |
---|
nonReentrant |
onlyRouter |
Args:
Arg | Type | Description |
---|---|---|
user | address | User address |
usage | uint256 | Number of usage fee |
Emit when user deposits.
Param | Type | Indexed | Description |
---|---|---|---|
by | address | ✅ | Deposit user |
to | address | ✅ | Receiver user |
amount | uint256 | ✅ | Deposit amount |
### Withdraw | | | |
Emit when user withdraws. | | | |
Param | Type | Indexed | Description |
---|---|---|---|
by | address | ✅ | Withdraw user |
from | address | ✅ | From user |
amount | uint256 | ✅ | Withdraw amount |
Last modified 1yr ago