- package abciclient
-
- import (
- "fmt"
-
- "github.com/tendermint/tendermint/abci/types"
- tmsync "github.com/tendermint/tendermint/internal/libs/sync"
- "github.com/tendermint/tendermint/libs/log"
- )
-
- // Creator creates new ABCI clients.
- type Creator func(log.Logger) (Client, error)
-
- // NewLocalCreator returns a Creator for the given app,
- // which will be running locally.
- func NewLocalCreator(app types.Application) Creator {
- mtx := new(tmsync.Mutex)
-
- return func(_ log.Logger) (Client, error) {
- return NewLocalClient(mtx, app), nil
- }
- }
-
- // NewRemoteCreator returns a Creator for the given address (e.g.
- // "192.168.0.1") and transport (e.g. "tcp"). Set mustConnect to true if you
- // want the client to connect before reporting success.
- func NewRemoteCreator(logger log.Logger, addr, transport string, mustConnect bool) Creator {
- return func(log.Logger) (Client, error) {
- remoteApp, err := NewClient(logger, addr, transport, mustConnect)
- if err != nil {
- return nil, fmt.Errorf("failed to connect to proxy: %w", err)
- }
-
- return remoteApp, nil
- }
- }
|