synapsecns/sanguine

View on GitHub
services/omnirpc/client/options.go

Summary

Maintainability
A
0 mins
Test Coverage
package client

// rpcOptions is a struct that holds the options for the RPC client.
type rpcOptions struct {
    confirmations int
    captureReqRes bool
}

// OptionsArgsOption is an option passed into the client.
type OptionsArgsOption func(options *rpcOptions)

// WithDefaultConfirmations sets the default number of confirmations.
func WithDefaultConfirmations(confirmations int) OptionsArgsOption {
    return func(options *rpcOptions) {
        options.confirmations = confirmations
    }
}

// WithCaptureReqRes captures requests and responses.
func WithCaptureReqRes() OptionsArgsOption {
    return func(options *rpcOptions) {
        options.captureReqRes = true
    }
}

func makeOptions(opts []OptionsArgsOption) *rpcOptions {
    args := &rpcOptions{
        confirmations: 0,
    }
    for _, opt := range opts {
        opt(args)
    }
    return args
}