38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
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 {
|
|
registerNamedCnr,
|
|
mainchain,
|
|
sidechain fixedn.Fixed8
|
|
}
|
|
|
|
// NewFeeConfig constructs FeeConfig from viper.Viper instance. Latter must not be nil.
|
|
//
|
|
// Fee for named container registration is taken from "fee.named_container_register" value.
|
|
func NewFeeConfig(v *viper.Viper) *FeeConfig {
|
|
return &FeeConfig{
|
|
registerNamedCnr: fixedn.Fixed8(v.GetInt64("fee.named_container_register")),
|
|
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
|
|
}
|
|
|
|
// NamedContainerRegistrationFee returns additional GAS fee for named container registration in FrostFS network.
|
|
func (f FeeConfig) NamedContainerRegistrationFee() fixedn.Fixed8 {
|
|
return f.registerNamedCnr
|
|
}
|