Merge PR #7084: types: fix panic on Int.BigInt()

This commit is contained in:
Federico Kunze 2020-08-18 15:16:23 +02:00 committed by GitHub
parent 740a4c50c7
commit 7f0c3f0093
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 0 deletions

View File

@ -186,6 +186,7 @@ be used to retrieve the actual proposal `Content`. Also the `NewMsgSubmitProposa
### Bug Fixes
* (types) [\#7084](https://github.com/cosmos/cosmos-sdk/pull/7084) Fix panic when calling `BigInt()` on an uninitialized `Int`.
* (x/bank) [\#6536](https://github.com/cosmos/cosmos-sdk/pull/6536) Fix bug in `WriteGeneratedTxResponse` function used by multiple
REST endpoints. Now it writes a Tx in StdTx format.
* (x/staking) [\#6529](https://github.com/cosmos/cosmos-sdk/pull/6529) Export validator addresses (previously was empty).

View File

@ -208,6 +208,10 @@ func (d Dec) Abs() Dec { return Dec{new(big.Int).Abs(d.i)} } // absolut
// BigInt returns a copy of the underlying big.Int.
func (d Dec) BigInt() *big.Int {
if d.IsNil() {
return nil
}
copy := new(big.Int)
return copy.Set(d.i)
}

View File

@ -76,9 +76,17 @@ type Int struct {
// BigInt converts Int to big.Int
func (i Int) BigInt() *big.Int {
if i.IsNil() {
return nil
}
return new(big.Int).Set(i.i)
}
// IsNil returns true if Int is uninitialized
func (i Int) IsNil() bool {
return i.i == nil
}
// NewInt constructs Int from int64
func NewInt(n int64) Int {
return Int{big.NewInt(n)}

View File

@ -81,6 +81,8 @@ func TestIntPanic(t *testing.T) {
// Division-by-zero check
require.Panics(t, func() { i1.Quo(NewInt(0)) })
require.NotPanics(t, func() { Int{}.BigInt() })
}
// Tests below uses randomness