[#486] innerring: Add fee configuration

When notary disabled, inner ring should be able to
configure extra fee for vote collections inside the
contracts. Previously these values were hardcoded,
however we might want to change them depending on
a environment.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
Alex Vanin 2021-04-29 16:37:16 +03:00 committed by Alex Vanin
parent c4f4381b13
commit 1f3bb33db8
2 changed files with 31 additions and 0 deletions

View file

@ -117,4 +117,8 @@ func defaultConfiguration(cfg *viper.Viper) {
cfg.SetDefault("indexer.cache_timeout", 15*time.Second)
cfg.SetDefault("locode.db.path", "")
// extra fee values for working mode without notary contract
cfg.SetDefault("fee.main_chain", 5000_0000) // 0.5 Fixed8
cfg.SetDefault("fee.side_chain", 2_0000_0000) // 2.0 Fixed8
}

View file

@ -0,0 +1,27 @@
package config
import (
"github.com/nspcc-dev/neo-go/pkg/encoding/fixedn"
"github.com/spf13/viper"
)
// FeeConfig is an instance that returns extra fee values for contract
// invocations without notary support.
type FeeConfig struct {
mainchain, sidechain fixedn.Fixed8
}
func NewFeeConfig(v *viper.Viper) *FeeConfig {
return &FeeConfig{
mainchain: fixedn.Fixed8(v.GetInt64("fee.main_chain")),
sidechain: fixedn.Fixed8(v.GetInt64("fee.side_chain")),
}
}
func (f FeeConfig) MainChainFee() fixedn.Fixed8 {
return f.mainchain
}
func (f FeeConfig) SideChainFee() fixedn.Fixed8 {
return f.sidechain
}