package audit import ( "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/innerring/processors/settlement/common" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/audit" oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id" ) // CalculatorPrm groups the parameters of Calculator's constructor. type CalculatorPrm struct { ResultStorage ResultStorage ContainerStorage common.ContainerStorage PlacementCalculator common.PlacementCalculator SGStorage SGStorage AccountStorage common.AccountStorage Exchanger common.Exchanger AuditFeeFetcher FeeFetcher } // ResultStorage is an interface of storage of the audit results. type ResultStorage interface { // Must return all audit results by epoch number. AuditResultsForEpoch(epoch uint64) ([]*audit.Result, error) } // SGInfo groups the data about FrostFS storage group // necessary for calculating audit fee. type SGInfo interface { // Must return sum size of the all group members. Size() uint64 } // SGStorage is an interface of storage of the storage groups. type SGStorage interface { // Must return information about the storage group by address. SGInfo(oid.Address) (SGInfo, error) } // FeeFetcher wraps AuditFee method that returns audit fee price from // the network configuration. type FeeFetcher interface { AuditFee() (uint64, error) }