feb0a65efb
In notary disabled environment, approval of container creation with nice name attribute takes much more additional GAS than other operations (due to NNS invocation). Morph library changes: * add the ability to specify per-op fees using `StaticClient` options; * add the ability to customize fee for `Put` operation with named container in container morph client. Inner Ring changes: * add `fee.named_container_register` config value which specifies additional GAS fee for the approvals of the named container registrations; * pass the config value to `WithCustomFeeForNamedPut` option of container morph client. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
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 NeoFS network.
|
|
func (f FeeConfig) NamedContainerRegistrationFee() fixedn.Fixed8 {
|
|
return f.registerNamedCnr
|
|
}
|