Hi Mikhail, thanks for your feedback. It took me a while to understand the concept but now I think I get it.

  • Token amounts should always be represented in uint256, and not in the 64.64-bit fixed point.
  • ABDK.Math provides methods like mulu, that takes a uint256 and a 64.64-bit fixed point number and multiplies them, returning a uint256.
  • Multiplying a token amount by a decimal number is done with mulu, with the returned value being a token amount in uint256. This covers case 1 of most financial applications.
  • The other scenario is dividing a money amount by another, divu takes two uint256 and returns a 64.64-bit fixed point.

You are absolutely right, although there is a limitation on the numbers that can’t be represented in 64.64-bit fixed point, that bears no relationship to the characteristics of the tokens involved, since tokens are always represented in uint256.

Written by

Blockchain Architect | Distributed and High Performance Computing Expert | Chaotic and Complex Systems Fanboy

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store