Merge PR #3680: Convenience ToDec()

* NewDecFromInt -> ToDec

* pending

* Update PENDING.md

Co-Authored-By: rigelrozanski <rigel.rozanski@gmail.com>

* test typo

* typo
This commit is contained in:
frog power 4000 2019-02-21 03:05:31 -05:00 committed by GitHub
parent a07b235f67
commit ab9de3a7f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 91 additions and 86 deletions

View File

@ -45,6 +45,7 @@
### SDK
* \#3456 Integrate in the Int.ToDec() convenience function
* [\#3300] Update the spec-spec, spec file reorg, and TOC updates.
* [\#3665] Overhaul sdk.Uint type in preparation for Coins's Int -> Uint migration.

View File

@ -441,7 +441,7 @@ func TestBonding(t *testing.T) {
require.Equal(t, 2, len(operAddrs))
amt := sdk.TokensFromTendermintPower(60)
amtDec := sdk.NewDecFromInt(amt)
amtDec := amt.ToDec()
validator := getValidator(t, port, operAddrs[0])
acc := getAccount(t, port, addr)
@ -545,7 +545,7 @@ func TestBonding(t *testing.T) {
require.Equal(t, resultTx.Height, txs[0].Height)
// query delegations, unbondings and redelegations from validator and delegator
rdShares := sdk.NewDecFromInt(rdTokens)
rdShares := rdTokens.ToDec()
delegatorDels = getDelegatorDelegations(t, port, addr)
require.Len(t, delegatorDels, 1)
require.Equal(t, rdShares, delegatorDels[0].GetShares())

View File

@ -861,7 +861,7 @@ func doUndelegate(
BaseReq: baseReq,
DelegatorAddr: delAddr,
ValidatorAddr: valAddr,
SharesAmount: sdk.NewDecFromInt(amount),
SharesAmount: amount.ToDec(),
}
req, err := cdc.MarshalJSON(msg)
@ -905,7 +905,7 @@ func doBeginRedelegation(
DelegatorAddr: delAddr,
ValidatorSrcAddr: valSrcAddr,
ValidatorDstAddr: valDstAddr,
SharesAmount: sdk.NewDecFromInt(amount),
SharesAmount: amount.ToDec(),
}
req, err := cdc.MarshalJSON(msg)

View File

@ -27,7 +27,7 @@ func NewDecCoin(denom string, amount Int) DecCoin {
return DecCoin{
Denom: denom,
Amount: NewDecFromInt(amount),
Amount: amount.ToDec(),
}
}
@ -54,7 +54,7 @@ func NewDecCoinFromCoin(coin Coin) DecCoin {
return DecCoin{
Denom: coin.Denom,
Amount: NewDecFromInt(coin.Amount),
Amount: coin.Amount.ToDec(),
}
}
@ -117,7 +117,7 @@ func (coin DecCoin) Minus(coinB DecCoin) DecCoin {
// return the decimal coins with trunctated decimals, and return the change
func (coin DecCoin) TruncateDecimal() (Coin, DecCoin) {
truncated := coin.Amount.TruncateInt()
change := coin.Amount.Sub(NewDecFromInt(truncated))
change := coin.Amount.Sub(truncated.ToDec())
return NewCoin(coin.Denom, truncated), DecCoin{coin.Denom, change}
}

View File

@ -162,6 +162,11 @@ func ZeroInt() Int { return Int{big.NewInt(0)} }
// OneInt returns Int value with one
func OneInt() Int { return Int{big.NewInt(1)} }
// ToDec converts Int to Dec
func (i Int) ToDec() Dec {
return NewDecFromInt(i)
}
// Int64 converts Int to int64
// Panics if the value is out of range
func (i Int) Int64() int64 {

View File

@ -407,7 +407,7 @@ func (cva ContinuousVestingAccount) GetVestedCoins(blockTime time.Time) sdk.Coin
s := sdk.NewDec(x).Quo(sdk.NewDec(y))
for _, ovc := range cva.OriginalVesting {
vestedAmt := sdk.NewDecFromInt(ovc.Amount).Mul(s).RoundInt()
vestedAmt := ovc.Amount.ToDec().Mul(s).RoundInt()
vestedCoins = append(vestedCoins, sdk.NewCoin(ovc.Denom, vestedAmt))
}

View File

@ -108,7 +108,7 @@ func TestCalculateRewardsAfterSlash(t *testing.T) {
// allocate some rewards
initial := sdk.TokensFromTendermintPower(10)
tokens := sdk.DecCoins{{sdk.DefaultBondDenom, sdk.NewDecFromInt(initial)}}
tokens := sdk.DecCoins{{sdk.DefaultBondDenom, initial.ToDec()}}
k.AllocateTokensToValidator(ctx, val, tokens)
// end period
@ -118,10 +118,10 @@ func TestCalculateRewardsAfterSlash(t *testing.T) {
rewards = k.calculateDelegationRewards(ctx, val, del, endingPeriod)
// rewards should be half the tokens
require.Equal(t, sdk.DecCoins{{sdk.DefaultBondDenom, sdk.NewDecFromInt(initial.DivRaw(2))}}, rewards)
require.Equal(t, sdk.DecCoins{{sdk.DefaultBondDenom, initial.DivRaw(2).ToDec()}}, rewards)
// commission should be the other half
require.Equal(t, sdk.DecCoins{{sdk.DefaultBondDenom, sdk.NewDecFromInt(initial.DivRaw(2))}},
require.Equal(t, sdk.DecCoins{{sdk.DefaultBondDenom, initial.DivRaw(2).ToDec()}},
k.GetValidatorAccumulatedCommission(ctx, valOpAddr1))
}
@ -170,7 +170,7 @@ func TestCalculateRewardsAfterManySlashes(t *testing.T) {
// allocate some rewards
initial := sdk.TokensFromTendermintPower(10)
tokens := sdk.DecCoins{{sdk.DefaultBondDenom, sdk.NewDecFromInt(initial)}}
tokens := sdk.DecCoins{{sdk.DefaultBondDenom, initial.ToDec()}}
k.AllocateTokensToValidator(ctx, val, tokens)
// slash the validator by 50% again
@ -192,10 +192,10 @@ func TestCalculateRewardsAfterManySlashes(t *testing.T) {
rewards = k.calculateDelegationRewards(ctx, val, del, endingPeriod)
// rewards should be half the tokens
require.Equal(t, sdk.DecCoins{{sdk.DefaultBondDenom, sdk.NewDecFromInt(initial)}}, rewards)
require.Equal(t, sdk.DecCoins{{sdk.DefaultBondDenom, initial.ToDec()}}, rewards)
// commission should be the other half
require.Equal(t, sdk.DecCoins{{sdk.DefaultBondDenom, sdk.NewDecFromInt(initial)}},
require.Equal(t, sdk.DecCoins{{sdk.DefaultBondDenom, initial.ToDec()}},
k.GetValidatorAccumulatedCommission(ctx, valOpAddr1))
}
@ -359,7 +359,7 @@ func TestCalculateRewardsAfterManySlashesInSameBlock(t *testing.T) {
ctx = ctx.WithBlockHeight(ctx.BlockHeight() + 3)
// allocate some rewards
initial := sdk.NewDecFromInt(sdk.TokensFromTendermintPower(10))
initial := sdk.TokensFromTendermintPower(10).ToDec()
tokens := sdk.DecCoins{{sdk.DefaultBondDenom, initial}}
k.AllocateTokensToValidator(ctx, val, tokens)
@ -414,7 +414,7 @@ func TestCalculateRewardsMultiDelegatorMultiSlash(t *testing.T) {
del1 := sk.Delegation(ctx, sdk.AccAddress(valOpAddr1), valOpAddr1)
// allocate some rewards
initial := sdk.NewDecFromInt(sdk.TokensFromTendermintPower(30))
initial := sdk.TokensFromTendermintPower(30).ToDec()
tokens := sdk.DecCoins{{sdk.DefaultBondDenom, initial}}
k.AllocateTokensToValidator(ctx, val, tokens)

View File

@ -39,7 +39,7 @@ func (k Keeper) incrementValidatorPeriod(ctx sdk.Context, val sdk.Validator) uin
current = sdk.DecCoins{}
} else {
// note: necessary to truncate so we don't allow withdrawing more rewards than owed
current = rewards.Rewards.QuoDecTruncate(sdk.NewDecFromInt(val.GetTokens()))
current = rewards.Rewards.QuoDecTruncate(val.GetTokens().ToDec())
}
// fetch historical rewards for last period

View File

@ -107,7 +107,7 @@ func tally(ctx sdk.Context, keeper Keeper, proposal Proposal) (passes bool, tall
return false, tallyResults
}
// If there is not enough quorum of votes, the proposal fails
percentVoting := totalVotingPower.Quo(sdk.NewDecFromInt(keeper.vs.TotalBondedTokens(ctx)))
percentVoting := totalVotingPower.Quo(keeper.vs.TotalBondedTokens(ctx).ToDec())
if percentVoting.LT(tallyParams.Quorum) {
return false, tallyResults
}

View File

@ -92,7 +92,7 @@ func TestJailedValidatorDelegations(t *testing.T) {
got = staking.NewHandler(stakingKeeper)(ctx, msgDelegate)
require.True(t, got.IsOK(), "expected delegation to be ok, got %v", got)
unbondShares := sdk.NewDecFromInt(bondAmount)
unbondShares := bondAmount.ToDec()
// unbond validator total self-delegations (which should jail the validator)
msgUndelegate := staking.NewMsgUndelegate(sdk.AccAddress(valAddr), valAddr, unbondShares)

View File

@ -189,7 +189,7 @@ func TestHandleAbsentValidator(t *testing.T) {
validator, _ = sk.GetValidatorByConsAddr(ctx, sdk.GetConsAddress(val))
require.Equal(t, sdk.Unbonding, validator.GetStatus())
slashAmt := sdk.NewDecFromInt(amt).Mul(keeper.SlashFractionDowntime(ctx)).RoundInt64()
slashAmt := amt.ToDec().Mul(keeper.SlashFractionDowntime(ctx)).RoundInt64()
// validator should have been slashed
require.Equal(t, amt.Int64()-slashAmt, validator.GetTokens().Int64())

View File

@ -146,7 +146,7 @@ func TestStakingMsgs(t *testing.T) {
require.True(sdk.IntEq(t, bondTokens, validator.Tokens))
// check the bond that should have been created as well
checkDelegation(t, mApp, keeper, addr1, sdk.ValAddress(addr1), true, sdk.NewDecFromInt(bondTokens))
checkDelegation(t, mApp, keeper, addr1, sdk.ValAddress(addr1), true, bondTokens.ToDec())
// edit the validator
description = NewDescription("bar_moniker", "", "", "")
@ -162,10 +162,10 @@ func TestStakingMsgs(t *testing.T) {
mock.SignCheckDeliver(t, mApp.Cdc, mApp.BaseApp, []sdk.Msg{delegateMsg}, []uint64{0}, []uint64{1}, true, true, priv2)
mock.CheckBalance(t, mApp, addr2, sdk.Coins{genCoin.Minus(bondCoin)})
checkDelegation(t, mApp, keeper, addr2, sdk.ValAddress(addr1), true, sdk.NewDecFromInt(bondTokens))
checkDelegation(t, mApp, keeper, addr2, sdk.ValAddress(addr1), true, bondTokens.ToDec())
// begin unbonding
beginUnbondingMsg := NewMsgUndelegate(addr2, sdk.ValAddress(addr1), sdk.NewDecFromInt(bondTokens))
beginUnbondingMsg := NewMsgUndelegate(addr2, sdk.ValAddress(addr1), bondTokens.ToDec())
mock.SignCheckDeliver(t, mApp.Cdc, mApp.BaseApp, []sdk.Msg{beginUnbondingMsg}, []uint64{0}, []uint64{2}, true, true, priv2)
// delegation should exist anymore

View File

@ -33,13 +33,13 @@ func TestInitGenesis(t *testing.T) {
validators[0].Description = NewDescription("hoop", "", "", "")
validators[0].Status = sdk.Bonded
validators[0].Tokens = valTokens
validators[0].DelegatorShares = sdk.NewDecFromInt(valTokens)
validators[0].DelegatorShares = valTokens.ToDec()
validators[1].OperatorAddr = sdk.ValAddress(keep.Addrs[1])
validators[1].ConsPubKey = keep.PKs[1]
validators[1].Description = NewDescription("bloop", "", "", "")
validators[1].Status = sdk.Bonded
validators[1].Tokens = valTokens
validators[1].DelegatorShares = sdk.NewDecFromInt(valTokens)
validators[1].DelegatorShares = valTokens.ToDec()
genesisState := types.NewGenesisState(pool, params, validators, delegations)
vals, err := InitGenesis(ctx, keeper, genesisState)
@ -94,7 +94,7 @@ func TestInitGenesisLargeValidatorSet(t *testing.T) {
tokens = sdk.TokensFromTendermintPower(2)
}
validators[i].Tokens = tokens
validators[i].DelegatorShares = sdk.NewDecFromInt(tokens)
validators[i].DelegatorShares = tokens.ToDec()
}
genesisState := types.NewGenesisState(pool, params, validators, delegations)

View File

@ -91,7 +91,7 @@ func TestValidatorByPowerIndex(t *testing.T) {
require.Equal(t, power2, power3)
// unbond self-delegation
msgUndelegate := NewMsgUndelegate(sdk.AccAddress(validatorAddr), validatorAddr, sdk.NewDecFromInt(initBond))
msgUndelegate := NewMsgUndelegate(sdk.AccAddress(validatorAddr), validatorAddr, initBond.ToDec())
got = handleMsgUndelegate(ctx, msgUndelegate, keeper)
require.True(t, got.IsOK(), "expected msg to be ok, got %v", got)
var finishTime time.Time
@ -126,7 +126,7 @@ func TestDuplicatesMsgCreateValidator(t *testing.T) {
assert.Equal(t, addr1, validator.OperatorAddr)
assert.Equal(t, pk1, validator.ConsPubKey)
assert.Equal(t, valTokens, validator.BondedTokens())
assert.Equal(t, sdk.NewDecFromInt(valTokens), validator.DelegatorShares)
assert.Equal(t, valTokens.ToDec(), validator.DelegatorShares)
assert.Equal(t, Description{}, validator.Description)
// two validators can't have the same operator address
@ -155,7 +155,7 @@ func TestDuplicatesMsgCreateValidator(t *testing.T) {
assert.Equal(t, addr2, validator.OperatorAddr)
assert.Equal(t, pk2, validator.ConsPubKey)
assert.True(sdk.IntEq(t, valTokens, validator.Tokens))
assert.True(sdk.DecEq(t, sdk.NewDecFromInt(valTokens), validator.DelegatorShares))
assert.True(sdk.DecEq(t, valTokens.ToDec(), validator.DelegatorShares))
assert.Equal(t, Description{}, validator.Description)
}
@ -200,7 +200,7 @@ func TestDuplicatesMsgCreateValidatorOnBehalfOf(t *testing.T) {
assert.Equal(t, validatorAddr, validator.OperatorAddr)
assert.Equal(t, pk, validator.ConsPubKey)
assert.True(sdk.IntEq(t, valTokens, validator.Tokens))
assert.True(sdk.DecEq(t, sdk.NewDecFromInt(valTokens), validator.DelegatorShares))
assert.True(sdk.DecEq(t, valTokens.ToDec(), validator.DelegatorShares))
assert.Equal(t, Description{}, validator.Description)
// one validator cannot be created twice even from different delegator
@ -248,7 +248,7 @@ func TestLegacyValidatorDelegations(t *testing.T) {
// unbond validator total self-delegations (which should jail the validator)
unbondShares := sdk.TokensFromTendermintPower(10)
msgUndelegate := NewMsgUndelegate(sdk.AccAddress(valAddr), valAddr, sdk.NewDecFromInt(unbondShares))
msgUndelegate := NewMsgUndelegate(sdk.AccAddress(valAddr), valAddr, unbondShares.ToDec())
got = handleMsgUndelegate(ctx, msgUndelegate, keeper)
require.True(t, got.IsOK(), "expected begin unbonding validator msg to be ok, got %v", got)
@ -520,7 +520,7 @@ func TestIncrementsMsgUnbond(t *testing.T) {
initBond,
}
for i, c := range errorCases {
unbondShares := sdk.NewDecFromInt(c)
unbondShares := c.ToDec()
msgUndelegate := NewMsgUndelegate(delegatorAddr, validatorAddr, unbondShares)
got = handleMsgUndelegate(ctx, msgUndelegate, keeper)
require.False(t, got.IsOK(), "expected unbond msg to fail, index: %v", i)
@ -529,14 +529,14 @@ func TestIncrementsMsgUnbond(t *testing.T) {
leftBonded := initBond.Sub(unbondShares.MulInt64(numUnbonds).RoundInt())
// should be unable to unbond one more than we have
unbondShares = sdk.NewDecFromInt(leftBonded.AddRaw(1))
unbondShares = leftBonded.AddRaw(1).ToDec()
msgUndelegate = NewMsgUndelegate(delegatorAddr, validatorAddr, unbondShares)
got = handleMsgUndelegate(ctx, msgUndelegate, keeper)
require.False(t, got.IsOK(),
"got: %v\nmsgUnbond: %v\nshares: %v\nleftBonded: %v\n", got, msgUndelegate, unbondShares.String(), leftBonded)
// should be able to unbond just what we have
unbondShares = sdk.NewDecFromInt(leftBonded)
unbondShares = leftBonded.ToDec()
msgUndelegate = NewMsgUndelegate(delegatorAddr, validatorAddr, unbondShares)
got = handleMsgUndelegate(ctx, msgUndelegate, keeper)
require.True(t, got.IsOK(),
@ -584,7 +584,7 @@ func TestMultipleMsgCreateValidator(t *testing.T) {
_, found := keeper.GetValidator(ctx, validatorAddr)
require.True(t, found)
unbondingTokens := sdk.TokensFromTendermintPower(10)
msgUndelegate := NewMsgUndelegate(delegatorAddrs[i], validatorAddr, sdk.NewDecFromInt(unbondingTokens)) // remove delegation
msgUndelegate := NewMsgUndelegate(delegatorAddrs[i], validatorAddr, unbondingTokens.ToDec()) // remove delegation
got := handleMsgUndelegate(ctx, msgUndelegate, keeper)
require.True(t, got.IsOK(), "expected msg %d to be ok, got %v", i, got)
var finishTime time.Time
@ -710,7 +710,7 @@ func TestValidatorQueue(t *testing.T) {
// unbond the all self-delegation to put validator in unbonding state
msgUndelegateValidator := NewMsgUndelegate(sdk.AccAddress(validatorAddr),
validatorAddr, sdk.NewDecFromInt(delTokens))
validatorAddr, delTokens.ToDec())
got = handleMsgUndelegate(ctx, msgUndelegateValidator, keeper)
require.True(t, got.IsOK(), "expected no error: %v", got)
var finishTime time.Time
@ -758,7 +758,7 @@ func TestUnbondingPeriod(t *testing.T) {
// begin unbonding
unbondingTokens := sdk.TokensFromTendermintPower(10)
msgUndelegate := NewMsgUndelegate(sdk.AccAddress(validatorAddr),
validatorAddr, sdk.NewDecFromInt(unbondingTokens))
validatorAddr, unbondingTokens.ToDec())
got = handleMsgUndelegate(ctx, msgUndelegate, keeper)
require.True(t, got.IsOK(), "expected no error")
origHeader := ctx.BlockHeader()
@ -951,7 +951,7 @@ func TestMultipleRedelegationAtSameTime(t *testing.T) {
// begin a redelegate
selfDelAddr := sdk.AccAddress(valAddr) // (the validator is it's own delegator)
msgBeginRedelegate := NewMsgBeginRedelegate(selfDelAddr,
valAddr, valAddr2, sdk.NewDecFromInt(valTokens.DivRaw(2)))
valAddr, valAddr2, valTokens.DivRaw(2).ToDec())
got = handleMsgBeginRedelegate(ctx, msgBeginRedelegate, keeper)
require.True(t, got.IsOK(), "expected no error, %v", got)
@ -1003,7 +1003,7 @@ func TestMultipleRedelegationAtUniqueTimes(t *testing.T) {
// begin a redelegate
selfDelAddr := sdk.AccAddress(valAddr) // (the validator is it's own delegator)
msgBeginRedelegate := NewMsgBeginRedelegate(selfDelAddr,
valAddr, valAddr2, sdk.NewDecFromInt(valTokens.DivRaw(2)))
valAddr, valAddr2, valTokens.DivRaw(2).ToDec())
got = handleMsgBeginRedelegate(ctx, msgBeginRedelegate, keeper)
require.True(t, got.IsOK(), "expected no error, %v", got)
@ -1051,7 +1051,7 @@ func TestMultipleUnbondingDelegationAtSameTime(t *testing.T) {
// begin an unbonding delegation
selfDelAddr := sdk.AccAddress(valAddr) // (the validator is it's own delegator)
msgUndelegate := NewMsgUndelegate(selfDelAddr, valAddr, sdk.NewDecFromInt(valTokens.DivRaw(2)))
msgUndelegate := NewMsgUndelegate(selfDelAddr, valAddr, valTokens.DivRaw(2).ToDec())
got = handleMsgUndelegate(ctx, msgUndelegate, keeper)
require.True(t, got.IsOK(), "expected no error, %v", got)
@ -1097,7 +1097,7 @@ func TestMultipleUnbondingDelegationAtUniqueTimes(t *testing.T) {
// begin an unbonding delegation
selfDelAddr := sdk.AccAddress(valAddr) // (the validator is it's own delegator)
msgUndelegate := NewMsgUndelegate(selfDelAddr, valAddr, sdk.NewDecFromInt(valTokens.DivRaw(2)))
msgUndelegate := NewMsgUndelegate(selfDelAddr, valAddr, valTokens.DivRaw(2).ToDec())
got = handleMsgUndelegate(ctx, msgUndelegate, keeper)
require.True(t, got.IsOK(), "expected no error, %v", got)
@ -1168,7 +1168,7 @@ func TestUnbondingWhenExcessValidators(t *testing.T) {
require.Equal(t, 2, len(keeper.GetLastValidators(ctx)))
// unbond the valdator-2
msgUndelegate := NewMsgUndelegate(sdk.AccAddress(validatorAddr2), validatorAddr2, sdk.NewDecFromInt(valTokens2))
msgUndelegate := NewMsgUndelegate(sdk.AccAddress(validatorAddr2), validatorAddr2, valTokens2.ToDec())
got = handleMsgUndelegate(ctx, msgUndelegate, keeper)
require.True(t, got.IsOK(), "expected no error on runMsgUndelegate")
@ -1213,20 +1213,20 @@ func TestBondUnbondRedelegateSlashTwice(t *testing.T) {
// begin unbonding 4 stake
ubdTokens := sdk.TokensFromTendermintPower(4)
msgUndelegate := NewMsgUndelegate(del, valA, sdk.NewDecFromInt(ubdTokens))
msgUndelegate := NewMsgUndelegate(del, valA, ubdTokens.ToDec())
got = handleMsgUndelegate(ctx, msgUndelegate, keeper)
require.True(t, got.IsOK(), "expected no error on runMsgUndelegate")
// begin redelegate 6 stake
rdTokens := sdk.TokensFromTendermintPower(6)
msgBeginRedelegate := NewMsgBeginRedelegate(del, valA, valB, sdk.NewDecFromInt(rdTokens))
msgBeginRedelegate := NewMsgBeginRedelegate(del, valA, valB, rdTokens.ToDec())
got = handleMsgBeginRedelegate(ctx, msgBeginRedelegate, keeper)
require.True(t, got.IsOK(), "expected no error on runMsgBeginRedelegate")
// destination delegation should have 6 shares
delegation, found := keeper.GetDelegation(ctx, del, valB)
require.True(t, found)
require.Equal(t, sdk.NewDecFromInt(rdTokens), delegation.Shares)
require.Equal(t, rdTokens.ToDec(), delegation.Shares)
// must apply validator updates
updates = keeper.ApplyAndReturnValidatorSetUpdates(ctx)
@ -1249,7 +1249,7 @@ func TestBondUnbondRedelegateSlashTwice(t *testing.T) {
// destination delegation should have been slashed by half
delegation, found = keeper.GetDelegation(ctx, del, valB)
require.True(t, found)
require.Equal(t, sdk.NewDecFromInt(rdTokens.DivRaw(2)), delegation.Shares)
require.Equal(t, rdTokens.DivRaw(2).ToDec(), delegation.Shares)
// validator power should have been reduced by half
validator, found := keeper.GetValidator(ctx, valA)
@ -1274,7 +1274,7 @@ func TestBondUnbondRedelegateSlashTwice(t *testing.T) {
// destination delegation should be unchanged
delegation, found = keeper.GetDelegation(ctx, del, valB)
require.True(t, found)
require.Equal(t, sdk.NewDecFromInt(rdTokens.DivRaw(2)), delegation.Shares)
require.Equal(t, rdTokens.DivRaw(2).ToDec(), delegation.Shares)
// end blocker
EndBlocker(ctx, keeper)

View File

@ -189,7 +189,7 @@ func TestUnbondDelegation(t *testing.T) {
keeper.SetDelegation(ctx, delegation)
bondTokens := sdk.TokensFromTendermintPower(6)
amount, err := keeper.unbond(ctx, addrDels[0], addrVals[0], sdk.NewDecFromInt(bondTokens))
amount, err := keeper.unbond(ctx, addrDels[0], addrVals[0], bondTokens.ToDec())
require.NoError(t, err)
require.Equal(t, bondTokens, amount) // shares to be added to an unbonding delegation
@ -285,7 +285,7 @@ func TestUndelegateSelfDelegationBelowMinSelfDelegation(t *testing.T) {
keeper.SetDelegation(ctx, delegation)
val0AccAddr := sdk.AccAddress(addrVals[0].Bytes())
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], sdk.NewDecFromInt(sdk.TokensFromTendermintPower(6)))
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], sdk.TokensFromTendermintPower(6).ToDec())
require.NoError(t, err)
// end block
@ -337,7 +337,7 @@ func TestUndelegateFromUnbondingValidator(t *testing.T) {
// unbond the all self-delegation to put validator in unbonding state
val0AccAddr := sdk.AccAddress(addrVals[0].Bytes())
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], sdk.NewDecFromInt(valTokens))
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], valTokens.ToDec())
require.NoError(t, err)
// end block
@ -405,7 +405,7 @@ func TestUndelegateFromUnbondedValidator(t *testing.T) {
ctx = ctx.WithBlockTime(time.Unix(333, 0))
// unbond the all self-delegation to put validator in unbonding state
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], sdk.NewDecFromInt(valTokens))
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], valTokens.ToDec())
require.NoError(t, err)
// end block
@ -429,7 +429,7 @@ func TestUndelegateFromUnbondedValidator(t *testing.T) {
// unbond some of the other delegation's shares
unbondTokens := sdk.TokensFromTendermintPower(6)
_, err = keeper.Undelegate(ctx, addrDels[0], addrVals[0], sdk.NewDecFromInt(unbondTokens))
_, err = keeper.Undelegate(ctx, addrDels[0], addrVals[0], unbondTokens.ToDec())
require.NoError(t, err)
// no ubd should have been found, coins should have been returned direcly to account
@ -438,7 +438,7 @@ func TestUndelegateFromUnbondedValidator(t *testing.T) {
// unbond rest of the other delegation's shares
remainingTokens := delTokens.Sub(unbondTokens)
_, err = keeper.Undelegate(ctx, addrDels[0], addrVals[0], sdk.NewDecFromInt(remainingTokens))
_, err = keeper.Undelegate(ctx, addrDels[0], addrVals[0], remainingTokens.ToDec())
require.NoError(t, err)
// now validator should now be deleted from state
@ -480,7 +480,7 @@ func TestUnbondingAllDelegationFromValidator(t *testing.T) {
ctx = ctx.WithBlockTime(time.Unix(333, 0))
// unbond the all self-delegation to put validator in unbonding state
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], sdk.NewDecFromInt(valTokens))
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], valTokens.ToDec())
require.NoError(t, err)
// end block
@ -488,7 +488,7 @@ func TestUnbondingAllDelegationFromValidator(t *testing.T) {
require.Equal(t, 1, len(updates))
// unbond all the remaining delegation
_, err = keeper.Undelegate(ctx, addrDels[0], addrVals[0], sdk.NewDecFromInt(delTokens))
_, err = keeper.Undelegate(ctx, addrDels[0], addrVals[0], delTokens.ToDec())
require.NoError(t, err)
// validator should still be in state and still be in unbonding state
@ -702,7 +702,7 @@ func TestRedelegateSelfDelegation(t *testing.T) {
delegation := types.NewDelegation(addrDels[0], addrVals[0], issuedShares)
keeper.SetDelegation(ctx, delegation)
_, err := keeper.BeginRedelegation(ctx, val0AccAddr, addrVals[0], addrVals[1], sdk.NewDecFromInt(delTokens))
_, err := keeper.BeginRedelegation(ctx, val0AccAddr, addrVals[0], addrVals[1], delTokens.ToDec())
require.NoError(t, err)
// end block
@ -760,7 +760,7 @@ func TestRedelegateFromUnbondingValidator(t *testing.T) {
ctx = ctx.WithBlockHeader(header)
// unbond the all self-delegation to put validator in unbonding state
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], sdk.NewDecFromInt(delTokens))
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], delTokens.ToDec())
require.NoError(t, err)
// end block
@ -783,7 +783,7 @@ func TestRedelegateFromUnbondingValidator(t *testing.T) {
// unbond some of the other delegation's shares
redelegateTokens := sdk.TokensFromTendermintPower(6)
_, err = keeper.BeginRedelegation(ctx, addrDels[0], addrVals[0], addrVals[1], sdk.NewDecFromInt(redelegateTokens))
_, err = keeper.BeginRedelegation(ctx, addrDels[0], addrVals[0], addrVals[1], redelegateTokens.ToDec())
require.NoError(t, err)
// retrieve the unbonding delegation
@ -836,7 +836,7 @@ func TestRedelegateFromUnbondedValidator(t *testing.T) {
ctx = ctx.WithBlockTime(time.Unix(333, 0))
// unbond the all self-delegation to put validator in unbonding state
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], sdk.NewDecFromInt(delTokens))
_, err := keeper.Undelegate(ctx, val0AccAddr, addrVals[0], delTokens.ToDec())
require.NoError(t, err)
// end block
@ -854,7 +854,7 @@ func TestRedelegateFromUnbondedValidator(t *testing.T) {
// redelegate some of the delegation's shares
redelegationTokens := sdk.TokensFromTendermintPower(6)
_, err = keeper.BeginRedelegation(ctx, addrDels[0], addrVals[0], addrVals[1], sdk.NewDecFromInt(redelegationTokens))
_, err = keeper.BeginRedelegation(ctx, addrDels[0], addrVals[0], addrVals[1], redelegationTokens.ToDec())
require.NoError(t, err)
// no red should have been found

View File

@ -30,7 +30,7 @@ func (k Keeper) Slash(ctx sdk.Context, consAddr sdk.ConsAddress, infractionHeigh
// Amount of slashing = slash slashFactor * power at time of infraction
amount := sdk.TokensFromTendermintPower(power)
slashAmountDec := sdk.NewDecFromInt(amount).Mul(slashFactor)
slashAmountDec := amount.ToDec().Mul(slashFactor)
slashAmount := slashAmountDec.TruncateInt()
// ref https://github.com/cosmos/cosmos-sdk/issues/1348
@ -59,7 +59,7 @@ func (k Keeper) Slash(ctx sdk.Context, consAddr sdk.ConsAddress, infractionHeigh
// we need to calculate the *effective* slash fraction for distribution
if validator.Tokens.GT(sdk.ZeroInt()) {
effectiveFraction := slashAmountDec.Quo(sdk.NewDecFromInt(validator.Tokens))
effectiveFraction := slashAmountDec.Quo(validator.Tokens.ToDec())
// possible if power has changed
if effectiveFraction.GT(sdk.OneDec()) {
effectiveFraction = sdk.OneDec()

View File

@ -344,11 +344,11 @@ func TestSlashWithRedelegation(t *testing.T) {
// set a redelegation
rdTokens := sdk.TokensFromTendermintPower(6)
rd := types.NewRedelegation(addrDels[0], addrVals[0], addrVals[1], 11,
time.Unix(0, 0), rdTokens, sdk.NewDecFromInt(rdTokens))
time.Unix(0, 0), rdTokens, rdTokens.ToDec())
keeper.SetRedelegation(ctx, rd)
// set the associated delegation
del := types.NewDelegation(addrDels[0], addrVals[1], sdk.NewDecFromInt(rdTokens))
del := types.NewDelegation(addrDels[0], addrVals[1], rdTokens.ToDec())
keeper.SetDelegation(ctx, del)
// update bonded tokens
@ -453,11 +453,11 @@ func TestSlashBoth(t *testing.T) {
rdATokens := sdk.TokensFromTendermintPower(6)
rdA := types.NewRedelegation(addrDels[0], addrVals[0], addrVals[1], 11,
time.Unix(0, 0), rdATokens,
sdk.NewDecFromInt(rdATokens))
rdATokens.ToDec())
keeper.SetRedelegation(ctx, rdA)
// set the associated delegation
delA := types.NewDelegation(addrDels[0], addrVals[1], sdk.NewDecFromInt(rdATokens))
delA := types.NewDelegation(addrDels[0], addrVals[1], rdATokens.ToDec())
keeper.SetDelegation(ctx, delA)
// set an unbonding delegation with expiration timestamp (beyond which the

View File

@ -146,7 +146,7 @@ func TestUpdateBondedValidatorsDecreaseCliff(t *testing.T) {
// validator and next in line cliff validator
keeper.DeleteValidatorByPowerIndex(ctx, nextCliffVal)
shares := sdk.TokensFromTendermintPower(21)
nextCliffVal, pool, _ = nextCliffVal.RemoveDelShares(pool, sdk.NewDecFromInt(shares))
nextCliffVal, pool, _ = nextCliffVal.RemoveDelShares(pool, shares.ToDec())
keeper.SetPool(ctx, pool)
nextCliffVal = TestingUpdateValidator(keeper, ctx, nextCliffVal, true)
@ -253,7 +253,7 @@ func TestValidatorBasics(t *testing.T) {
// modify a records, save, and retrieve
validators[0].Status = sdk.Bonded
validators[0].Tokens = sdk.TokensFromTendermintPower(10)
validators[0].DelegatorShares = sdk.NewDecFromInt(validators[0].Tokens)
validators[0].DelegatorShares = validators[0].Tokens.ToDec()
validators[0] = TestingUpdateValidator(keeper, ctx, validators[0], true)
resVal, found = keeper.GetValidator(ctx, addrVals[0])
require.True(t, found)
@ -857,8 +857,8 @@ func TestApplyAndReturnValidatorSetUpdatesPowerDecrease(t *testing.T) {
pool := keeper.GetPool(ctx)
delTokens1 := sdk.TokensFromTendermintPower(20)
delTokens2 := sdk.TokensFromTendermintPower(30)
validators[0], pool, _ = validators[0].RemoveDelShares(pool, sdk.NewDecFromInt(delTokens1))
validators[1], pool, _ = validators[1].RemoveDelShares(pool, sdk.NewDecFromInt(delTokens2))
validators[0], pool, _ = validators[0].RemoveDelShares(pool, delTokens1.ToDec())
validators[1], pool, _ = validators[1].RemoveDelShares(pool, delTokens2.ToDec())
keeper.SetPool(ctx, pool)
validators[0] = TestingUpdateValidator(keeper, ctx, validators[0], false)
validators[1] = TestingUpdateValidator(keeper, ctx, validators[1], false)
@ -934,7 +934,7 @@ func TestApplyAndReturnValidatorSetUpdatesNewValidator(t *testing.T) {
keeper.SetPool(ctx, pool)
keeper.SetValidator(ctx, validator)
validator, pool, _ = validator.RemoveDelShares(pool, sdk.NewDecFromInt(amt))
validator, pool, _ = validator.RemoveDelShares(pool, amt.ToDec())
keeper.SetValidator(ctx, validator)
keeper.SetValidatorByPowerIndex(ctx, validator)

View File

@ -298,7 +298,7 @@ func TestQueryDelegation(t *testing.T) {
// Query unbonging delegation
unbondingTokens := sdk.TokensFromTendermintPower(10)
_, err = keeper.Undelegate(ctx, addrAcc2, val1.OperatorAddr, sdk.NewDecFromInt(unbondingTokens))
_, err = keeper.Undelegate(ctx, addrAcc2, val1.OperatorAddr, unbondingTokens.ToDec())
require.Nil(t, err)
queryBondParams = NewQueryBondsParams(addrAcc2, addrVal1)
@ -352,7 +352,7 @@ func TestQueryDelegation(t *testing.T) {
// Query redelegation
redelegationTokens := sdk.TokensFromTendermintPower(10)
_, err = keeper.BeginRedelegation(ctx, addrAcc2, val1.OperatorAddr,
val2.OperatorAddr, sdk.NewDecFromInt(redelegationTokens))
val2.OperatorAddr, redelegationTokens.ToDec())
require.Nil(t, err)
redel, found := keeper.GetRedelegation(ctx, addrAcc2, val1.OperatorAddr, val2.OperatorAddr)
require.True(t, found)
@ -390,7 +390,7 @@ func TestQueryRedelegations(t *testing.T) {
_ = keeper.ApplyAndReturnValidatorSetUpdates(ctx)
rdAmount := sdk.TokensFromTendermintPower(20)
keeper.BeginRedelegation(ctx, addrAcc2, val1.GetOperator(), val2.GetOperator(), sdk.NewDecFromInt(rdAmount))
keeper.BeginRedelegation(ctx, addrAcc2, val1.GetOperator(), val2.GetOperator(), rdAmount.ToDec())
keeper.ApplyAndReturnValidatorSetUpdates(ctx)
redelegation, found := keeper.GetRedelegation(ctx, addrAcc2, val1.OperatorAddr, val2.OperatorAddr)

View File

@ -51,27 +51,27 @@ func SupplyInvariants(k staking.Keeper,
loose := sdk.ZeroDec()
bonded := sdk.ZeroDec()
am.IterateAccounts(ctx, func(acc auth.Account) bool {
loose = loose.Add(sdk.NewDecFromInt(acc.GetCoins().AmountOf(k.BondDenom(ctx))))
loose = loose.Add(acc.GetCoins().AmountOf(k.BondDenom(ctx)).ToDec())
return false
})
k.IterateUnbondingDelegations(ctx, func(_ int64, ubd staking.UnbondingDelegation) bool {
for _, entry := range ubd.Entries {
loose = loose.Add(sdk.NewDecFromInt(entry.Balance))
loose = loose.Add(entry.Balance.ToDec())
}
return false
})
k.IterateValidators(ctx, func(_ int64, validator sdk.Validator) bool {
switch validator.GetStatus() {
case sdk.Bonded:
bonded = bonded.Add(sdk.NewDecFromInt(validator.GetBondedTokens()))
bonded = bonded.Add(validator.GetBondedTokens().ToDec())
case sdk.Unbonding, sdk.Unbonded:
loose = loose.Add(sdk.NewDecFromInt(validator.GetTokens()))
loose = loose.Add(validator.GetTokens().ToDec())
}
return false
})
// add outstanding fees
loose = loose.Add(sdk.NewDecFromInt(f.GetCollectedFees(ctx).AmountOf(k.BondDenom(ctx))))
loose = loose.Add(f.GetCollectedFees(ctx).AmountOf(k.BondDenom(ctx)).ToDec())
// add community pool
loose = loose.Add(d.GetFeePoolCommunityCoins(ctx).AmountOf(k.BondDenom(ctx)))
@ -81,14 +81,14 @@ func SupplyInvariants(k staking.Keeper,
// Not-bonded tokens should equal coin supply plus unbonding delegations
// plus tokens on unbonded validators
if !sdk.NewDecFromInt(pool.NotBondedTokens).Equal(loose) {
if !pool.NotBondedTokens.ToDec().Equal(loose) {
return fmt.Errorf("loose token invariance:\n"+
"\tpool.NotBondedTokens: %v\n"+
"\tsum of account tokens: %v", pool.NotBondedTokens, loose)
}
// Bonded tokens should equal sum of tokens with bonded validators
if !sdk.NewDecFromInt(pool.BondedTokens).Equal(bonded) {
if !pool.BondedTokens.ToDec().Equal(bonded) {
return fmt.Errorf("bonded token invariance:\n"+
"\tpool.BondedTokens: %v\n"+
"\tsum of account tokens: %v", pool.BondedTokens, bonded)

View File

@ -204,7 +204,7 @@ func SimulateMsgBeginRedelegate(m auth.AccountKeeper, k staking.Keeper) simulati
DelegatorAddr: delegatorAddress,
ValidatorSrcAddr: srcValidatorAddress,
ValidatorDstAddr: destValidatorAddress,
SharesAmount: sdk.NewDecFromInt(amount),
SharesAmount: amount.ToDec(),
}
if msg.ValidateBasic() != nil {
return "", nil, fmt.Errorf("expected msg to pass ValidateBasic: %s", msg.GetSignBytes())

View File

@ -39,8 +39,7 @@ func (p Pool) TokenSupply() sdk.Int {
func (p Pool) BondedRatio() sdk.Dec {
supply := p.TokenSupply()
if supply.IsPositive() {
return sdk.NewDecFromInt(p.BondedTokens).
QuoInt(supply)
return p.BondedTokens.ToDec().QuoInt(supply)
}
return sdk.ZeroDec()
}

View File

@ -359,7 +359,7 @@ func (v Validator) AddTokensFromDel(pool Pool, amount sdk.Int) (Validator, Pool,
}
v.Tokens = v.Tokens.Add(amount)
issuedShares := sdk.NewDecFromInt(amount).Quo(exRate)
issuedShares := amount.ToDec().Quo(exRate)
v.DelegatorShares = v.DelegatorShares.Add(issuedShares)
return v, pool, issuedShares
@ -404,7 +404,7 @@ func (v Validator) DelegatorShareExRate() sdk.Dec {
// the first delegation to a validator sets the exchange rate to one
return sdk.OneDec()
}
return sdk.NewDecFromInt(v.Tokens).Quo(v.DelegatorShares)
return v.Tokens.ToDec().Quo(v.DelegatorShares)
}
// get the bonded tokens which the validator holds