Use correct bit length constant for sdk.Dec (#11332)
Co-authored-by: Marko <marbar3778@yahoo.com>
This commit is contained in:
parent
68f6c8b74e
commit
3d3cf25546
1
go.sum
1
go.sum
|
@ -1337,7 +1337,6 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
|
|||
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
|
||||
github.com/zondax/hid v0.9.0 h1:eiT3P6vNxAEVxXMw66eZUAAnU2zD33JBkfG/EnfAKl8=
|
||||
github.com/zondax/hid v0.9.0/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM=
|
||||
github.com/zondax/hid v0.9.1-0.20220302062450-5552068d2266 h1:O9XLFXGkVswDFmH9LaYpqu+r/AAFWqr0DL6V00KEVFg=
|
||||
github.com/zondax/hid v0.9.1-0.20220302062450-5552068d2266/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM=
|
||||
|
|
|
@ -179,8 +179,8 @@ func NewDecFromStr(str string) (Dec, error) {
|
|||
if !ok {
|
||||
return Dec{}, fmt.Errorf("failed to set decimal string: %s", combinedStr)
|
||||
}
|
||||
if combined.BitLen() > maxBitLen {
|
||||
return Dec{}, fmt.Errorf("decimal out of range; bitLen: got %d, max %d", combined.BitLen(), maxBitLen)
|
||||
if combined.BitLen() > maxDecBitLen {
|
||||
return Dec{}, fmt.Errorf("decimal out of range; bitLen: got %d, max %d", combined.BitLen(), maxDecBitLen)
|
||||
}
|
||||
if neg {
|
||||
combined = new(big.Int).Neg(combined)
|
||||
|
@ -831,8 +831,8 @@ func (d *Dec) Unmarshal(data []byte) error {
|
|||
return err
|
||||
}
|
||||
|
||||
if d.i.BitLen() > maxBitLen {
|
||||
return fmt.Errorf("decimal out of range; got: %d, max: %d", d.i.BitLen(), maxBitLen)
|
||||
if d.i.BitLen() > maxDecBitLen {
|
||||
return fmt.Errorf("decimal out of range; got: %d, max: %d", d.i.BitLen(), maxDecBitLen)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
@ -54,8 +54,14 @@ func (s *decimalTestSuite) mustNewDecFromStr(str string) (d sdk.Dec) {
|
|||
}
|
||||
|
||||
func (s *decimalTestSuite) TestNewDecFromStr() {
|
||||
largeBigInt, success := new(big.Int).SetString("3144605511029693144278234343371835", 10)
|
||||
s.Require().True(success)
|
||||
largeBigInt, ok := new(big.Int).SetString("3144605511029693144278234343371835", 10)
|
||||
s.Require().True(ok)
|
||||
|
||||
largerBigInt, ok := new(big.Int).SetString("88888888888888888888888888888888888888888888888888888888888888888888844444440", 10)
|
||||
s.Require().True(ok)
|
||||
|
||||
largestBigInt, ok := new(big.Int).SetString("133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433535", 10)
|
||||
s.Require().True(ok)
|
||||
|
||||
tests := []struct {
|
||||
decimalStr string
|
||||
|
@ -81,7 +87,9 @@ func (s *decimalTestSuite) TestNewDecFromStr() {
|
|||
{"foobar", true, sdk.Dec{}},
|
||||
{"0.foobar", true, sdk.Dec{}},
|
||||
{"0.foobar.", true, sdk.Dec{}},
|
||||
{"88888888888888888888888888888888888888888888888888888888888888888888844444440", true, sdk.Dec{}},
|
||||
{"88888888888888888888888888888888888888888888888888888888888888888888844444440", false, sdk.NewDecFromBigInt(largerBigInt)},
|
||||
{"133499189745056880149688856635597007162669032647290798121690100488888732861290.034376435130433535", false, sdk.NewDecFromBigIntWithPrec(largestBigInt, 18)},
|
||||
{"133499189745056880149688856635597007162669032647290798121690100488888732861291", true, sdk.Dec{}},
|
||||
}
|
||||
|
||||
for tcIndex, tc := range tests {
|
||||
|
@ -472,6 +480,12 @@ func (s *decimalTestSuite) TestDecSortableBytes() {
|
|||
}
|
||||
|
||||
func (s *decimalTestSuite) TestDecEncoding() {
|
||||
largestBigInt, ok := new(big.Int).SetString("133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433535", 10)
|
||||
s.Require().True(ok)
|
||||
|
||||
smallestBigInt, ok := new(big.Int).SetString("-133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433535", 10)
|
||||
s.Require().True(ok)
|
||||
|
||||
testCases := []struct {
|
||||
input sdk.Dec
|
||||
rawBz string
|
||||
|
@ -507,6 +521,18 @@ func (s *decimalTestSuite) TestDecEncoding() {
|
|||
"\"-1.414213562373095049\"",
|
||||
"\"-1.414213562373095049\"\n",
|
||||
},
|
||||
{
|
||||
sdk.NewDecFromBigIntWithPrec(largestBigInt, 18),
|
||||
"313333343939313839373435303536383830313439363838383536363335353937303037313632363639303332363437323930373938313231363930313030343838383838373332383631323930303334333736343335313330343333353335",
|
||||
"\"133499189745056880149688856635597007162669032647290798121690100488888732861290.034376435130433535\"",
|
||||
"\"133499189745056880149688856635597007162669032647290798121690100488888732861290.034376435130433535\"\n",
|
||||
},
|
||||
{
|
||||
sdk.NewDecFromBigIntWithPrec(smallestBigInt, 18),
|
||||
"2D313333343939313839373435303536383830313439363838383536363335353937303037313632363639303332363437323930373938313231363930313030343838383838373332383631323930303334333736343335313330343333353335",
|
||||
"\"-133499189745056880149688856635597007162669032647290798121690100488888732861290.034376435130433535\"",
|
||||
"\"-133499189745056880149688856635597007162669032647290798121690100488888732861290.034376435130433535\"\n",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
|
|
Loading…
Reference in New Issue