LinTokenBasedFormula
This contract provides functions for calculating the purchase and sale return values on a linear token-based curve using a scaling factor. The formula converts a desired token amount into a reserve token cost and the sale of a token amount into a reserve token return.
State Variables
MAX_SCALE
Max scaling factor in basis points
uint32 private constant MAX_SCALE = 1000000;
PURE_LINEAR_SCALE
1:1 scaling factor in basis points
uint32 private constant PURE_LINEAR_SCALE = 10000;
WAD
Wei as decimal precision for calculations
uint256 private constant WAD = 10 ** 18;
Functions
_calculateLinTokenBasedPurchaseCost
Returns the purchase cost for a given conversion (in the reserve token) for a desired amount (in the main token).
function _calculateLinTokenBasedPurchaseCost(uint256 supply, uint256 initialCost, uint32 scalingFactor, uint256 amount)
internal
pure
returns (uint256 purchaseCost);
Parameters
supply
uint256
token total supply
initialCost
uint256
initial cost of the token
scalingFactor
uint32
scaling factor, represented in basis points, 1-10000
amount
uint256
amount of tokens to purchase
Returns
purchaseCost
uint256
cost of the conversion
_calculateLinTokenBasedSaleReturn
Returns the sale value for a given amount (in the main token) as a conversion into the reserve token.
function _calculateLinTokenBasedSaleReturn(uint256 supply, uint256 initialCost, uint32 scalingFactor, uint256 amount)
internal
pure
returns (uint256 saleReturn);
Parameters
supply
uint256
token total supply
initialCost
uint256
initial cost of the token
scalingFactor
uint32
scaling factor, represented in basis points, 1-10000
amount
uint256
amount of tokens to sell
Returns
saleReturn
uint256
return of the conversion
Errors
LinTokenBasedFormula__InvalidInput
error LinTokenBasedFormula__InvalidInput();