Skip to content

Commit

Permalink
apply default denomination to stake setting for pos (#2418)
Browse files Browse the repository at this point in the history
Co-authored-by: sukantoraymond <[email protected]>
  • Loading branch information
felipemadero and sukantoraymond authored Dec 10, 2024
1 parent 5897809 commit 0cfa00f
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 4 deletions.
4 changes: 2 additions & 2 deletions cmd/blockchaincmd/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -1043,8 +1043,8 @@ func deployBlockchain(cmd *cobra.Command, args []string) error {
aggregatorAllowPrivatePeers,
logLvl,
validatorManagerSDK.PoSParams{
MinimumStakeAmount: big.NewInt(int64(poSMinimumStakeAmount)),
MaximumStakeAmount: big.NewInt(int64(poSMaximumStakeAmount)),
MinimumStakeAmount: utils.ApplyDefaultDenomination(poSMinimumStakeAmount),
MaximumStakeAmount: utils.ApplyDefaultDenomination(poSMaximumStakeAmount),
MinimumStakeDuration: poSMinimumStakeDuration,
MinimumDelegationFee: poSMinimumDelegationFee,
MaximumStakeMultiplier: poSMaximumStakeMultiplier,
Expand Down
5 changes: 3 additions & 2 deletions cmd/contractcmd/init_validator_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"github.com/ava-labs/avalanche-cli/pkg/models"
"github.com/ava-labs/avalanche-cli/pkg/networkoptions"
"github.com/ava-labs/avalanche-cli/pkg/prompts"
"github.com/ava-labs/avalanche-cli/pkg/utils"
"github.com/ava-labs/avalanche-cli/pkg/ux"
"github.com/ava-labs/avalanche-cli/pkg/validatormanager"
blockchainSDK "github.com/ava-labs/avalanche-cli/sdk/blockchain"
Expand Down Expand Up @@ -205,8 +206,8 @@ func initValidatorManager(_ *cobra.Command, args []string) error {
validatorManagerFlags.aggregatorAllowPrivatePeers,
validatorManagerFlags.aggregatorLogLevel,
validatorManagerSDK.PoSParams{
MinimumStakeAmount: big.NewInt(int64(initPOSManagerFlags.minimumStakeAmount)),
MaximumStakeAmount: big.NewInt(int64(initPOSManagerFlags.maximumStakeAmount)),
MinimumStakeAmount: utils.ApplyDefaultDenomination(initPOSManagerFlags.minimumStakeAmount),
MaximumStakeAmount: utils.ApplyDefaultDenomination(initPOSManagerFlags.maximumStakeAmount),
MinimumStakeDuration: initPOSManagerFlags.minimumStakeDuration,
MinimumDelegationFee: initPOSManagerFlags.minimumDelegationFee,
MaximumStakeMultiplier: initPOSManagerFlags.maximumStakeMultiplier,
Expand Down
28 changes: 28 additions & 0 deletions pkg/utils/decimals.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Copyright (C) 2023, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package utils

import (
"math/big"
)

const defaultDenomination = 18

// Convert an integed amount of the given denomination to base units
// (i.e. An amount of 54 with a decimals value of 3 results in 54000)
func ApplyDenomination(amount uint64, decimals uint8) *big.Int {
multiplier := new(big.Int).Exp(
big.NewInt(10),
big.NewInt(int64(decimals)),
nil,
)
return new(big.Int).Mul(
big.NewInt(int64(amount)),
multiplier,
)
}

// Convert an integed amount of the default denomination to base units
func ApplyDefaultDenomination(amount uint64) *big.Int {
return ApplyDenomination(amount, defaultDenomination)
}

0 comments on commit 0cfa00f

Please sign in to comment.