bfBTC Fees
Note: fees only be taken while requestWithdraw
, requestWithdrawNative
, and cross-chain actions.
Fee Types
uint8 private constant FEE_TYPE_EVM = 0; // For EVM chain operations
uint8 private constant FEE_TYPE_NATIVE = 1; // For native chain [Bitcoin] operations
uint8 private constant FEE_TYPE_CROSSCHAIN = 2; // For cross-chain operations
Fee Structure
struct FeeConfig {
uint128 percentageFee; // Percentage-based fee (precision: 100000)
uint128 fixedFee; // Fixed fee amount
}
Fee Calculation
function calculateFee(
address user,
uint256 amount,
uint8 feeType
) public view returns (uint256 percentageFee, uint256 fixedFee)
Description: Calculate fees for a specific operation based on user address and amount.
Parameters:
user
: Address of the user performing the operationamount
: Amount of the operationfeeType
: Type of fee to calculate (EVM/Native/Crosschain)
Return Values:
percentageFee
: Calculated percentage-based feefixedFee
: Fixed fee amount
Calculation Formula:
Notes:
percentageFee precision is 100000
Transaction reverts if total fee exceeds operation amount
Fee Events
event FeeUpdated(uint8 indexed feeType, uint256 percentageFee, uint256 fixedFee);
event FeeWhitelistUpdated(address indexed account, bool status);
event FeeCollected(
address indexed user,
uint8 indexed feeType,
uint256 id,
uint256 amount,
uint256 percentageFee,
uint256 fixedFee
);
Additional Information
Fees are collected in the bfBTC token
Fee events provide tracking and auditing capabilities
Whitelist mechanism allows for special cases and promotions
Fee configuration can be updated based on market conditions
Last updated