@@ -12,19 +12,19 @@ import (
1212 "time"
1313
1414 "github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric/core/operations"
15- contextApi "github.com/hyperledger/fabric-sdk-go/pkg/common/providers/context"
16- "github.com/hyperledger/fabric-sdk-go/pkg/context"
17- "github.com/hyperledger/fabric-sdk-go/pkg/core/config/lookup"
18- "github.com/hyperledger/fabric-sdk-go/pkg/core/logging/api"
19- "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/metrics"
20-
2115 "github.com/hyperledger/fabric-sdk-go/pkg/common/logging"
16+ coptions "github.com/hyperledger/fabric-sdk-go/pkg/common/options"
17+ contextApi "github.com/hyperledger/fabric-sdk-go/pkg/common/providers/context"
2218 "github.com/hyperledger/fabric-sdk-go/pkg/common/providers/core"
2319 "github.com/hyperledger/fabric-sdk-go/pkg/common/providers/fab"
2420 "github.com/hyperledger/fabric-sdk-go/pkg/common/providers/msp"
21+ "github.com/hyperledger/fabric-sdk-go/pkg/context"
22+ "github.com/hyperledger/fabric-sdk-go/pkg/core/config/lookup"
2523 "github.com/hyperledger/fabric-sdk-go/pkg/core/cryptosuite"
24+ "github.com/hyperledger/fabric-sdk-go/pkg/core/logging/api"
2625 fabImpl "github.com/hyperledger/fabric-sdk-go/pkg/fab"
2726 sdkApi "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/api"
27+ "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/metrics"
2828 metricsCfg "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/metrics/cfg"
2929 mspImpl "github.com/hyperledger/fabric-sdk-go/pkg/msp"
3030 "github.com/pkg/errors"
@@ -57,6 +57,7 @@ type options struct {
5757 endpointConfig fab.EndpointConfig
5858 IdentityConfig msp.IdentityConfig
5959 ConfigBackend []core.ConfigBackend
60+ ProviderOpts []coptions.Opt // Provider options are passed along to the various providers
6061 metricsConfig metricsCfg.MetricsConfig
6162}
6263
@@ -202,6 +203,14 @@ func WithMetricsConfig(metricsConfigs ...interface{}) Option {
202203 }
203204}
204205
206+ // WithProviderOpts adds options which are propagated to the various providers.
207+ func WithProviderOpts (sopts ... coptions.Opt ) Option {
208+ return func (opts * options ) error {
209+ opts .ProviderOpts = append (opts .ProviderOpts , sopts ... )
210+ return nil
211+ }
212+ }
213+
205214// providerInit interface allows for initializing providers
206215// TODO: minimize interface
207216type providerInit interface {
@@ -261,7 +270,7 @@ func initSDK(sdk *FabricSDK, configProvider core.ConfigProvider, opts []Option)
261270 return errors .WithMessage (err , "failed to create local discovery provider" )
262271 }
263272
264- channelProvider , err := sdk .opts .Service .CreateChannelProvider (cfg .endpointConfig )
273+ channelProvider , err := sdk .opts .Service .CreateChannelProvider (cfg .endpointConfig , sdk . opts . ProviderOpts ... )
265274 if err != nil {
266275 return errors .WithMessage (err , "failed to create channel provider" )
267276 }
0 commit comments