update spec

This commit is contained in:
rigelrozanski
2018-09-05 19:15:15 -04:00
parent e2b5b9b73b
commit b40909906d
8 changed files with 74 additions and 59 deletions
+13 -14
View File
@@ -3,28 +3,27 @@ package keeper
import sdk "github.com/cosmos/cosmos-sdk/types"
// XXX TODO
func (k Keeper) AllocateFees(ctx sdk.Context, feesCollected sdk.Coins, proposerAddr sdk.ConsAddrs,
func (k Keeper) AllocateFees(ctx sdk.Context, feesCollected sdk.Coins, proposerAddr sdk.ConsAddress,
sumPowerPrecommitValidators, totalBondedTokens, communityTax, proposerCommissionRate sdk.Dec) {
feePool := k.GetFeePool()
validator := k.stakeKeeper.GetValidatorFromConsAddr(ctx,
proposerOpAddr := Stake.GetValidator
proposer := k.GetFeeDistribution(ctx, proposerOpAddr)
proserValidator := k.stakeKeeper.GetValidatorFromConsAddr(ctx, proposerAddr)
proposer := k.GetFeeDistribution(ctx, proserValidator.OperatorAddr)
feesCollectedDec = MakeDecCoins(feesCollected)
proposerReward = feesCollectedDec.Mul(sdk.NewDecWithPrec(1, 2) + sdk.NewDecWithPrec(1, 2).Mul(sumPowerPrecommitValidators)/totalBondedTokens)
feesCollectedDec := NewDecCoins(feesCollected)
proposerMultiplier := sdk.NewDecWithPrec(1, 2).Add(sdk.NewDecWithPrec(4, 2).Mul(
sumPowerPrecommitValidators).Div(totalBondedTokens))
proposerReward := feesCollectedDec.Mul(proposerMultiplier)
commission = proposerReward * proposerCommissionRate
proposer.PoolCommission += commission
proposer.Pool += proposerReward - commission
commission := proposerReward.Mul(proposerCommissionRate)
proposer.PoolCommission = proposer.PoolCommission.Add(commission)
proposer.Pool = proposer.Pool.Add(proposerReward.Sub(commission))
communityFunding = feesCollectedDec * communityTax
feePool.CommunityFund += communityFunding
communityFunding := feesCollectedDec.Mul(communityTax)
feePool.CommunityFund = feePool.CommunityFund.Add(communityFunding)
poolReceived = feesCollectedDec - proposerReward - communityFunding
feePool.Pool += poolReceived
feePool.EverReceivedPool += poolReceived
feePool.LastReceivedPool = poolReceived
feePool.Pool = feePool.Pool.Add(poolReceived)
SetValidatorDistribution(proposer)
SetFeePool(feePool)
+2 -2
View File
@@ -32,7 +32,7 @@ func NewKeeper(cdc *wire.Codec, key sdk.StoreKey, ck types.CoinKeeper,
//______________________________________________________________________
// get the global fee pool distribution info
func (k Keeper) GetFeePool(ctx sdk.Context) (feePool types.Global) {
func (k Keeper) GetFeePool(ctx sdk.Context) (feePool types.FeePool) {
store := ctx.KVStore(k.storeKey)
b := store.Get(GlobalKey)
@@ -45,7 +45,7 @@ func (k Keeper) GetFeePool(ctx sdk.Context) (feePool types.Global) {
}
// set the global fee pool distribution info
func (k Keeper) SetFeePool(ctx sdk.Context, feePool types.Global) {
func (k Keeper) SetFeePool(ctx sdk.Context, feePool types.FeePool) {
store := ctx.KVStore(k.storeKey)
b := k.cdc.MustMarshalBinary(feePool)
store.Set(GlobalKey, b)
+27
View File
@@ -0,0 +1,27 @@
package types
import sdk "github.com/cosmos/cosmos-sdk/types"
// coins with decimal
type DecCoins []DecCoin
// Coins which can have additional decimal points
type DecCoin struct {
Amount sdk.Dec `json:"amount"`
Denom string `json:"denom"`
}
func NewDecCoin(coin sdk.Coin) DecCoin {
return DecCoins{
Amount: sdk.NewDec(coin.Amount),
Denom: coin.Denom,
}
}
func NewDecCoins(coins sdk.Coins) DecCoins {
dcs := make(DecCoins, len(coins))
for i, coin := range coins {
dcs[i] = NewDecCoin(coin)
}
}
-9
View File
@@ -2,15 +2,6 @@ package types
import sdk "github.com/cosmos/cosmos-sdk/types"
// coins with decimal
type DecCoins []DecCoin
// Coins which can have additional decimal points
type DecCoin struct {
Amount sdk.Dec `json:"amount"`
Denom string `json:"denom"`
}
// total accumulation tracker
type TotalAccum struct {
UpdateHeight int64 `json:"update_height"`