Utility functions for different kinds of fees.Documentation Index
Fetch the complete documentation index at: https://docs.canton.network/llms.txt
Use this file to discover all available pages before exploring further.
Data Types
data ExpiringAmount
ExpiringAmountinstance Eq ExpiringAmount instance Ord ExpiringAmount instance Show ExpiringAmount instance GetField “amount” Amulet ExpiringAmount instance GetField “createdAt” ExpiringAmount Round instance GetField “initialAmount” ExpiringAmount Decimal instance GetField “ratePerRound” ExpiringAmount RatePerRound instance SetField “amount” Amulet ExpiringAmount instance SetField “createdAt” ExpiringAmount Round instance SetField “initialAmount” ExpiringAmount Decimal instance SetField “ratePerRound” ExpiringAmount RatePerRound
Field Type Description initialAmount Decimal createdAt Round ratePerRound RatePerRound
data FixedFee
A fixed fee independent of the action being taken. TODO(M3-90): check whether this name matches usage in financial terms, it probably isn’t. Should it be ‘flat-fee’, ‘constantfee’, … ???FixedFeeinstance Eq FixedFee instance Ord FixedFee instance Show FixedFee instance GetField “createFee” (TransferConfig unit) FixedFee instance GetField “fee” FixedFee Decimal instance GetField “lockHolderFee” (TransferConfig unit) FixedFee instance SetField “createFee” (TransferConfig unit) FixedFee instance SetField “fee” FixedFee Decimal instance SetField “lockHolderFee” (TransferConfig unit) FixedFee instance Patchable FixedFee
Field Type Description fee Decimal
data RatePerDay
RatePerDayinstance Eq RatePerDay instance Ord RatePerDay instance Show RatePerDay instance GetField “rate” RatePerDay Decimal instance SetField “rate” RatePerDay Decimal
Field Type Description rate Decimal
data RatePerRound
RatePerRoundinstance Eq RatePerRound instance Ord RatePerRound instance Show RatePerRound instance GetField “holdingFee” (TransferConfig unit) RatePerRound instance GetField “holdingFee” (TransferConfigV2 unit) RatePerRound instance GetField “rate” RatePerRound Decimal instance GetField “ratePerRound” ExpiringAmount RatePerRound instance SetField “holdingFee” (TransferConfig unit) RatePerRound instance SetField “holdingFee” (TransferConfigV2 unit) RatePerRound instance SetField “rate” RatePerRound Decimal instance SetField “ratePerRound” ExpiringAmount RatePerRound instance Patchable RatePerRound
Field Type Description rate Decimal
data SteppedRate
A rate defined as a piecewise linear function, e.g., `SteppedRate 0.01 [(100.0, 0.001), (1000.0, 0.0001), (1000000, 0.00001)] corresponds to 1% of the first 100, 0.1% between 100 and 1000, 0.01% between 1000 and 1000000 and 0.001% for everything above that.SteppedRateinstance Eq SteppedRate instance Ord SteppedRate instance Show SteppedRate instance GetField “initialRate” SteppedRate Decimal instance GetField “steps” SteppedRate [(Decimal, Decimal)] instance GetField “transferFee” (TransferConfig unit) SteppedRate instance SetField “initialRate” SteppedRate Decimal instance SetField “steps” SteppedRate [(Decimal, Decimal)] instance SetField “transferFee” (TransferConfig unit) SteppedRate instance Patchable SteppedRate
Functions
microsPerDay
: Decimal
chargeRatePerRound
: RatePerRound -> RelRound -> Decimal
scaleRatePerRound
: Decimal -> RatePerRound -> RatePerRoundScale a round rate such thatALL s r dt. s * chargeRatePerRound r dt = chargeRatePerRound (s
scaleRatePerRound r) dtpositiveRatePerRound
: RatePerRound -> Bool
scaleFixedFee
: Decimal -> FixedFee -> FixedFee
positiveFixedFee
: FixedFee -> Bool
validSteppedRate
: SteppedRate -> Bool
scaleSteppedRate
: Decimal -> SteppedRate -> SteppedRateScale a fixed-plus-variable rate such thatALL s r q. s * chargeSteppedRate r (q/s) = chargeSteppedRate (s
scaleSteppedRate r) qvalidExpiringAmount
: ExpiringAmount -> Bool
expiringAmount
: RatePerRound -> Decimal -> Round -> ExpiringAmountSmart constructor for an expiring amount.
getValueAsOfRound0
: ExpiringAmount -> Decimal
ratePerRoundToRatePerDay
: RatePerRound -> RelTime -> RatePerDay