Why is fee designed like this?
type Fee = record { lowest: nat; rate :nat32 };
Dfinity should consider the cost of DDOS attacks. The cost design does not appear in the ERC20 standard, but Dfinity is necessary.
The cost design should first consider the minimum handling fee for each update operation to prevent ddos attacks, and some services may be charged according to the rate. The two cost logics are integrated into [lowest + rate] to support different scenarios.
-
Only minimum charge is required x
fee= record {lowest: x, rate:0} -
Charged at rate y%, minimum charge x
fee= record {lowest: x, rate:y%}