@MicahZoltu was asking in a Discord (CryptoDevs) about when there might be an implementation of exponentiation by squaring algorithm in OpenZeppelin Contracts.
In Computing and Accumulating Interest On-Chain (common patterns and their properties) @Austin-Williams talks about the possible opportunity of adding a fixed-precision library to OpenZeppelin Contracts, including an implementation of the exponentiation by squaring algorithm.
1 Like
I believe the plan is to look at adding a fixed point library with basic operations. Once that is done, then consider adding an implementation of exponentiation by squaring. Need to define the semantics of overflow.
@MicahZoltu would be good to have your input on this.
What I want is basically exactly what was described in @Austin-Williams’s presentation. A library that lets me plug in a principal and a time and return a value that is interest accrued since compounded daily. This requires exponentiation by squaring, and that is the hardest part to get right so providing just exponentiation by squaring would be a big help.
2 Likes
@MicahZoltu I created a new post on Designing Fixed Point Math in OpenZeppelin Contracts. While I do intend to have an exponentiation-by-squaring pow
function be included, it’ll likely not be part of the initial release, until we settle on the low-level details behind representation.
I’d love to hear your thoughts on it!
1 Like