Documentation ¶
Index ¶
- func BuildSimpleTable(bvns []string) []protocol.Route
- func RouteEnvelopes(routeAccount func(*url.URL) (string, error), envs ...*protocol.Envelope) (string, error)
- type ResponseSubmit
- type RouteTree
- type Router
- type RouterInstance
- func (r *RouterInstance) Query(ctx context.Context, partitionId string, query []byte, ...) (*core.ResultABCIQuery, error)
- func (r *RouterInstance) RequestAPIv2(ctx context.Context, partitionId, method string, params, result interface{}) error
- func (r *RouterInstance) Route(envs ...*protocol.Envelope) (string, error)
- func (r *RouterInstance) RouteAccount(account *url.URL) (string, error)
- func (r *RouterInstance) Submit(ctx context.Context, partitionId string, tx *protocol.Envelope, ...) (*ResponseSubmit, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildSimpleTable ¶ added in v1.0.0
Types ¶
type ResponseSubmit ¶
type ResponseSubmit struct { Code uint32 Data []byte Log string Info string Codespace string MempoolError string }
ResponseSubmit is the response from a call to Submit.
type RouteTree ¶ added in v1.0.0
type RouteTree struct {
// contains filtered or unexported fields
}
func NewRouteTree ¶ added in v1.0.0
func NewRouteTree(table *protocol.RoutingTable) (*RouteTree, error)
type Router ¶
type Router interface { RouteAccount(*url.URL) (string, error) Route(...*protocol.Envelope) (string, error) Query(ctx context.Context, partition string, query []byte, opts client.ABCIQueryOptions) (*core.ResultABCIQuery, error) RequestAPIv2(ctx context.Context, partitionId, method string, params, result interface{}) error Submit(ctx context.Context, partition string, tx *protocol.Envelope, pretend, async bool) (*ResponseSubmit, error) }
Router defines a basic interface for routing and sending transactions.
TODO Route and Send should probably be handled separately.
type RouterInstance ¶
type RouterInstance struct {
// contains filtered or unexported fields
}
RouterInstance sends transactions to remote nodes via RPC calls.
func NewRouter ¶ added in v1.0.0
func NewRouter(eventBus *events.Bus, cm connections.ConnectionManager, logger log.Logger) *RouterInstance
func NewStaticRouter ¶ added in v1.0.0
func NewStaticRouter(table *protocol.RoutingTable, cm connections.ConnectionManager, logger log.Logger) (*RouterInstance, error)
NewStaticRouter returns a router that uses a static routing table
func (*RouterInstance) Query ¶
func (r *RouterInstance) Query(ctx context.Context, partitionId string, query []byte, opts client.ABCIQueryOptions) (*core.ResultABCIQuery, error)
Query queries the specified partition. If the partition matches this network's ID, the transaction is broadcasted via the local client. Otherwise the transaction is broadcasted via an RPC client.
func (*RouterInstance) RequestAPIv2 ¶ added in v1.0.0
func (r *RouterInstance) RequestAPIv2(ctx context.Context, partitionId, method string, params, result interface{}) error
func (*RouterInstance) Route ¶
func (r *RouterInstance) Route(envs ...*protocol.Envelope) (string, error)
Route routes the account using modulo routing.
func (*RouterInstance) RouteAccount ¶ added in v0.5.1
func (r *RouterInstance) RouteAccount(account *url.URL) (string, error)
func (*RouterInstance) Submit ¶
func (r *RouterInstance) Submit(ctx context.Context, partitionId string, tx *protocol.Envelope, pretend, async bool) (*ResponseSubmit, error)
Submit submits the transaction to the specified partition. If the partition matches this network's ID, the transaction is broadcasted via the local client. Otherwise the transaction is broadcasted via an RPC client.