diff --git a/math/CHANGELOG.md b/math/CHANGELOG.md index 072fa738e0ad..ebe9a28a85ac 100644 --- a/math/CHANGELOG.md +++ b/math/CHANGELOG.md @@ -42,6 +42,7 @@ Ref: https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.j ### Bug Fixes +* [#18211](https://github.com/cosmos/cosmos-sdk/pull/18211) RelativePow now returns 1 when 0^0, before it was returning the scale factor. * [#17725](https://github.com/cosmos/cosmos-sdk/pull/17725) Fix state break in ApproxRoot. This has been present since math/v1.0.1. It changed the rounding behavior at precision end in an intermediary division from banker's to truncation. The truncation occurs from binary right shift in the case of square roots. The change is now reverted back to banker's rounding universally for any root. ## [math/v1.1.2](https://github.com/cosmos/cosmos-sdk/releases/tag/math/v1.1.2) - 2023-08-21 diff --git a/math/uint.go b/math/uint.go index 821ead066a2a..6d9de72190b2 100644 --- a/math/uint.go +++ b/math/uint.go @@ -243,7 +243,7 @@ func checkNewUint(i *big.Int) (Uint, error) { func RelativePow(x, n, b Uint) (z Uint) { if x.IsZero() { if n.IsZero() { - z = b // 0^0 = 1 + z = OneUint() // 0^0 = 1 return z } z = ZeroUint() // otherwise 0^a = 0 diff --git a/math/uint_test.go b/math/uint_test.go index 7d4a5a731fad..0c464433a074 100644 --- a/math/uint_test.go +++ b/math/uint_test.go @@ -271,7 +271,7 @@ func (s *uintTestSuite) TestRelativePow() { want sdkmath.Uint }{ {[]sdkmath.Uint{sdkmath.ZeroUint(), sdkmath.ZeroUint(), sdkmath.OneUint()}, sdkmath.OneUint()}, - {[]sdkmath.Uint{sdkmath.ZeroUint(), sdkmath.ZeroUint(), sdkmath.NewUint(10)}, sdkmath.NewUint(10)}, + {[]sdkmath.Uint{sdkmath.ZeroUint(), sdkmath.ZeroUint(), sdkmath.NewUint(10)}, sdkmath.NewUint(1)}, {[]sdkmath.Uint{sdkmath.ZeroUint(), sdkmath.OneUint(), sdkmath.NewUint(10)}, sdkmath.ZeroUint()}, {[]sdkmath.Uint{sdkmath.NewUint(10), sdkmath.NewUint(2), sdkmath.OneUint()}, sdkmath.NewUint(100)}, {[]sdkmath.Uint{sdkmath.NewUint(210), sdkmath.NewUint(2), sdkmath.NewUint(100)}, sdkmath.NewUint(441)},