diff --git a/internal/frostfs/policy/contract/contract.go b/internal/frostfs/policy/contract/contract.go index 0da24a7..eac4ea6 100644 --- a/internal/frostfs/policy/contract/contract.go +++ b/internal/frostfs/policy/contract/contract.go @@ -41,6 +41,11 @@ type Config struct { Key *keys.PrivateKey } +const ( + batchSize = 100 + iteratorChainsByPrefix = "iteratorChainsByPrefix" +) + var _ policy.Contract = (*Client)(nil) // New creates new Policy contract wrapper. @@ -114,7 +119,8 @@ func (c *Client) RemoveChain(kind policycontract.Kind, entity string, name []byt } func (c *Client) ListChains(kind policycontract.Kind, entity string, name []byte) ([][]byte, error) { - items, err := c.policyContract.ListChainsByPrefix(big.NewInt(int64(kind)), entity, name) + items, err := commonclient.ReadIteratorItems(c.actor, batchSize, c.contractHash, iteratorChainsByPrefix, + big.NewInt(int64(kind)), entity, name) if err != nil { return nil, err }