fix in candidateAddTokens

This commit is contained in:
rigelrozanski 2018-03-30 22:51:40 +02:00
parent c017256300
commit 34278f5220
2 changed files with 6 additions and 4 deletions

View File

@ -84,6 +84,8 @@ func (p Pool) removeSharesUnbonded(shares sdk.Rat) (p2 Pool, removedTokens int64
func (p Pool) candidateAddTokens(candidate Candidate,
amount int64) (p2 Pool, candidate2 Candidate, issuedDelegatorShares sdk.Rat) {
exRate := candidate.delegatorShareExRate()
var receivedGlobalShares sdk.Rat
if candidate.Status == Bonded {
p, receivedGlobalShares = p.addTokensBonded(amount)
@ -92,7 +94,6 @@ func (p Pool) candidateAddTokens(candidate Candidate,
}
candidate.Assets = candidate.Assets.Add(receivedGlobalShares)
exRate := candidate.delegatorShareExRate()
issuedDelegatorShares = exRate.Mul(receivedGlobalShares)
candidate.Liabilities = candidate.Liabilities.Add(issuedDelegatorShares)

View File

@ -132,13 +132,14 @@ func TestRemoveSharesUnbonded(t *testing.T) {
func TestCandidateAddTokens(t *testing.T) {
ctx, _, keeper := createTestInput(t, nil, false, 0)
poolA := keeper.GetPool(ctx)
candA := Candidate{
Status: Bonded,
Address: addrs[0],
PubKey: pks[0],
Assets: sdk.NewRat(9),
Liabilities: sdk.NewRat(9),
Status: Bonded,
}
poolA.BondedPool = candA.Assets.Evaluate()
poolA.BondedShares = candA.Assets
@ -148,11 +149,11 @@ func TestCandidateAddTokens(t *testing.T) {
poolB, candB, sharesB := poolA.candidateAddTokens(candA, 10)
// shares were issued
assert.Equal(t, sharesB, sdk.NewRat(10).Mul(candA.delegatorShareExRate()))
assert.Equal(t, sdk.NewRat(10).Mul(candA.delegatorShareExRate()), sharesB)
// pool shares were added
assert.Equal(t, candB.Assets, candA.Assets.Add(sdk.NewRat(10)))
// conservation of tokens
assert.Equal(t, poolB.UnbondedPool+poolB.BondedPool, 10+poolA.UnbondedPool+poolA.BondedPool)
assert.Equal(t, poolB.BondedPool, 10+poolA.BondedPool)
}
func TestCandidateRemoveShares(t *testing.T) {