package utils import ( "context" "fmt" "git.frostfs.info/TrueCloudLab/frostfs-http-gw/resolver" cid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/pool" ) // GetContainerID decode container id, if it's not a valid container id // then trey to resolve name using provided resolver. func GetContainerID(ctx context.Context, containerID string, resolver *resolver.ContainerResolver) (*cid.ID, error) { cnrID := new(cid.ID) err := cnrID.DecodeString(containerID) if err != nil { cnrID, err = resolver.Resolve(ctx, containerID) } return cnrID, err } type EpochDurations struct { CurrentEpoch uint64 MsPerBlock int64 BlockPerEpoch uint64 } func GetEpochDurations(ctx context.Context, p *pool.Pool) (*EpochDurations, error) { networkInfo, err := p.NetworkInfo(ctx) if err != nil { return nil, err } res := &EpochDurations{ CurrentEpoch: networkInfo.CurrentEpoch(), MsPerBlock: networkInfo.MsPerBlock(), BlockPerEpoch: networkInfo.EpochDuration(), } if res.BlockPerEpoch == 0 { return nil, fmt.Errorf("EpochDuration is empty") } return res, nil }