service

package
v0.0.0-...-581f9f3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2020 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package service bridge the gap between the blockchain world and the conventional business application world, by mediating a complete lifecycle of off-chain services -- from their definition, binding (provider registration), invocation, to their governance (profiling and dispute resolution).

By enhancing the IBC processing logic to support service semantics, the IRIS SDK is intended to allow distributed business services to be available across the internet of blockchains. The Interface description language (IDL) we introduced is to work with the service standardized definitions to satisfy service invocations across different programming languages. The currently supported IDL language is protobuf

[More Details](https://www.irisnet.org/docs/features/service.html)

As a quick start:

	schemas := `{"input":{"type":"object"},"output":{"type":"object"},"error":{"type":"object"}}`
	pricing := `{"price":"1point"}`
 testResult := `{"code":200,"message":""}`

	baseTx := sdk.BaseTx{
		From: "test1",
		Gas:  20000,
		Memo: "test",
		Mode: sdk.Commit,
	}

	definition := rpc.ServiceDefinitionRequest{
		ServiceName:       generateServiceName(),
		Description:       "this is a test service",
		Event:              nil,
		AuthorDescription: "service provider",
		Schemas:           schemas,
	}

	result, err := sts.Service.DefineService(definition, baseTx)
	require.NoError(sts.T(), err)
	require.NotEmpty(sts.T(), result.Hash)

	defi, err := sts.Service.QueryDefinition(definition.ServiceName)
	require.NoError(sts.T(), err)
	require.Equal(sts.T(), definition.ServiceName, defi.Name)
	require.Equal(sts.T(), definition.Description, defi.Description)
	require.EqualValues(sts.T(), definition.Event, defi.Event)
	require.Equal(sts.T(), definition.AuthorDescription, defi.AuthorDescription)
	require.Equal(sts.T(), definition.Schemas, defi.Schemas)
	require.Equal(sts.T(), sts.Sender(), defi.Author)

	deposit, _ := sdk.ParseCoins("20000000000000000000000point")
	binding := rpc.ServiceBindingRequest{
		ServiceName: definition.ServiceName,
		Deposit:     deposit,
		Pricing:     pricing,
	}
	result, err = sts.Service.BindService(binding, baseTx)
	require.NoError(sts.T(), err)
	require.NotEmpty(sts.T(), result.Hash)

	bindResp, err := sts.Service.QueryBinding(definition.ServiceName, sts.Sender())
	require.NoError(sts.T(), err)
	require.Equal(sts.T(), binding.ServiceName, bindResp.ServiceName)
	require.Equal(sts.T(), sts.Sender(), bindResp.Provider)
	require.Equal(sts.T(), binding.Deposit.String(), bindResp.Deposit.String())
	require.Equal(sts.T(), binding.Pricing, bindResp.Pricing)

	input := `{"pair":"point-usdt"}`
	output := `{"last":"1:100"}`

	err = sts.Service.SubscribeSingleServiceRequest(definition.ServiceName,
		func(reqCtxID, reqID, input string) (string, string) {
			sts.Info().
				Str("input", input).
				Str("output", output).
				Msg("provider received request")
			return output, testResult
		}, baseTx)
	require.NoError(sts.T(), err)

	serviceFeeCap, _ := sdk.ParseCoins("1000000000000000000point")
	invocation := rpc.ServiceInvocationRequest{
		ServiceName:       definition.ServiceName,
		Providers:         []string{sts.Sender().String()},
		Input:             input,
		ServiceFeeCap:     serviceFeeCap,
		Timeout:           3,
		SuperMode:         false,
		Repeated:          true,
		RepeatedFrequency: 5,
		RepeatedTotal:     -1,
	}
	var requestContextID string
	var exit = make(chan int, 0)
	requestContextID, err = sts.Service.InvokeService(invocation, func(reqCtxID, reqID, responses string) {
		require.Equal(sts.T(), reqCtxID, requestContextID)
		require.Equal(sts.T(), output, response)
		sts.Info().
			Str("requestContextID", requestContextID).
			Str("response", response).
			Msg("consumer received response")
		exit <- 1
	}, baseTx)

	sts.Info().
		Str("requestContextID", requestContextID).
		Msg("ServiceRequest service success")
	require.NoError(sts.T(), err)

	request, err := sts.Service.QueryRequestContext(requestContextID)
	require.NoError(sts.T(), err)
	require.Equal(sts.T(), request.ServiceName, invocation.ServiceName)
	require.Equal(sts.T(), request.Input, invocation.Input)

	<-exit

Index

Constants

View Source
const (
	// ModuleName define module name
	ModuleName = "service"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type EarnedFees

type EarnedFees struct {
	Address sdk.AccAddress `json:"address"`
	Coins   sdk.Coins      `json:"coins"`
}

EarnedFees defines a struct for the fees earned by the provider

type InvokeCallback

type InvokeCallback func(reqCtxID, reqID, responses string)

InvokeCallback defines the callback function for service calls

type MsgBindService

type MsgBindService struct {
	ServiceName string         `json:"service_name"`
	Provider    sdk.AccAddress `json:"provider"`
	Deposit     sdk.Coins      `json:"deposit"`
	Pricing     string         `json:"pricing"`
	MinRespTime uint64         `json:"min_resp_time"`
}

MsgBindService defines a message to bind a service

func (MsgBindService) GetSignBytes

func (msg MsgBindService) GetSignBytes() []byte

func (MsgBindService) GetSigners

func (msg MsgBindService) GetSigners() []sdk.AccAddress

func (MsgBindService) Route

func (msg MsgBindService) Route() string

func (MsgBindService) Type

func (msg MsgBindService) Type() string

func (MsgBindService) ValidateBasic

func (msg MsgBindService) ValidateBasic() error

type MsgCallService

type MsgCallService struct {
	ServiceName       string           `json:"service_name"`
	Providers         []sdk.AccAddress `json:"providers"`
	Consumer          sdk.AccAddress   `json:"consumer"`
	Input             string           `json:"input"`
	ServiceFeeCap     sdk.Coins        `json:"service_fee_cap"`
	Timeout           int64            `json:"timeout"`
	SuperMode         bool             `json:"super_mode"`
	Repeated          bool             `json:"repeated"`
	RepeatedFrequency uint64           `json:"repeated_frequency"`
	RepeatedTotal     int64            `json:"repeated_total"`
}

MsgCallService defines a message to request a service

func (MsgCallService) GetSignBytes

func (msg MsgCallService) GetSignBytes() []byte

func (MsgCallService) GetSigners

func (msg MsgCallService) GetSigners() []sdk.AccAddress

func (MsgCallService) Route

func (msg MsgCallService) Route() string

func (MsgCallService) Type

func (msg MsgCallService) Type() string

func (MsgCallService) ValidateBasic

func (msg MsgCallService) ValidateBasic() error

type MsgDefineService

type MsgDefineService struct {
	Name              string         `json:"name"`
	Description       string         `json:"description"`
	Tags              []string       `json:"tags"`
	Author            sdk.AccAddress `json:"author"`
	AuthorDescription string         `json:"author_description"`
	Schemas           string         `json:"schemas"`
}

MsgDefineService defines a message to define a service

func (MsgDefineService) GetSignBytes

func (msg MsgDefineService) GetSignBytes() []byte

func (MsgDefineService) GetSigners

func (msg MsgDefineService) GetSigners() []sdk.AccAddress

func (MsgDefineService) Route

func (msg MsgDefineService) Route() string

func (MsgDefineService) Type

func (msg MsgDefineService) Type() string

func (MsgDefineService) ValidateBasic

func (msg MsgDefineService) ValidateBasic() error

type MsgDisableServiceBinding

type MsgDisableServiceBinding struct {
	ServiceName string         `json:"service_name"`
	Provider    sdk.AccAddress `json:"provider"`
}

MsgDisableServiceBinding defines a message to disable a service binding

func (MsgDisableServiceBinding) GetSignBytes

func (msg MsgDisableServiceBinding) GetSignBytes() []byte

GetSignBytes implements Msg.

func (MsgDisableServiceBinding) GetSigners

func (msg MsgDisableServiceBinding) GetSigners() []sdk.AccAddress

GetSigners implements Msg.

func (MsgDisableServiceBinding) Route

func (msg MsgDisableServiceBinding) Route() string

func (MsgDisableServiceBinding) Type

func (msg MsgDisableServiceBinding) Type() string

Type implements Msg.

func (MsgDisableServiceBinding) ValidateBasic

func (msg MsgDisableServiceBinding) ValidateBasic() error

ValidateBasic implements Msg.

type MsgEnableServiceBinding

type MsgEnableServiceBinding struct {
	ServiceName string         `json:"service_name"`
	Provider    sdk.AccAddress `json:"provider"`
	Deposit     sdk.Coins      `json:"deposit"`
}

MsgEnableServiceBinding defines a message to enable a service binding

func (MsgEnableServiceBinding) GetSignBytes

func (msg MsgEnableServiceBinding) GetSignBytes() []byte

GetSignBytes implements Msg.

func (MsgEnableServiceBinding) GetSigners

func (msg MsgEnableServiceBinding) GetSigners() []sdk.AccAddress

GetSigners implements Msg.

func (MsgEnableServiceBinding) Route

func (msg MsgEnableServiceBinding) Route() string

func (MsgEnableServiceBinding) Type

func (msg MsgEnableServiceBinding) Type() string

Type implements Msg.

func (MsgEnableServiceBinding) ValidateBasic

func (msg MsgEnableServiceBinding) ValidateBasic() error

ValidateBasic implements Msg.

type MsgKillRequestContext

type MsgKillRequestContext struct {
	RequestContextID sdk.HexBytes   `json:"request_context_id"`
	Consumer         sdk.AccAddress `json:"consumer"`
}

MsgKillRequestContext defines a message to terminate a request context

func (MsgKillRequestContext) GetSignBytes

func (msg MsgKillRequestContext) GetSignBytes() []byte

GetSignBytes implements Msg.

func (MsgKillRequestContext) GetSigners

func (msg MsgKillRequestContext) GetSigners() []sdk.AccAddress

GetSigners implements Msg.

func (MsgKillRequestContext) Route

func (msg MsgKillRequestContext) Route() string

func (MsgKillRequestContext) Type

func (msg MsgKillRequestContext) Type() string

Type implements Msg.

func (MsgKillRequestContext) ValidateBasic

func (msg MsgKillRequestContext) ValidateBasic() error

ValidateBasic implements Msg.

type MsgPauseRequestContext

type MsgPauseRequestContext struct {
	RequestContextID sdk.HexBytes   `json:"request_context_id"`
	Consumer         sdk.AccAddress `json:"consumer"`
}

MsgPauseRequestContext defines a message to suspend a request context

func (MsgPauseRequestContext) GetSignBytes

func (msg MsgPauseRequestContext) GetSignBytes() []byte

GetSignBytes implements Msg.

func (MsgPauseRequestContext) GetSigners

func (msg MsgPauseRequestContext) GetSigners() []sdk.AccAddress

GetSigners implements Msg.

func (MsgPauseRequestContext) Route

func (msg MsgPauseRequestContext) Route() string

func (MsgPauseRequestContext) Type

func (msg MsgPauseRequestContext) Type() string

Type implements Msg.

func (MsgPauseRequestContext) ValidateBasic

func (msg MsgPauseRequestContext) ValidateBasic() error

ValidateBasic implements Msg.

type MsgRefundServiceDeposit

type MsgRefundServiceDeposit struct {
	ServiceName string         `json:"service_name"`
	Provider    sdk.AccAddress `json:"provider"`
}

MsgRefundServiceDeposit defines a message to refund deposit from a service binding

func (MsgRefundServiceDeposit) GetSignBytes

func (msg MsgRefundServiceDeposit) GetSignBytes() []byte

GetSignBytes implements Msg.

func (MsgRefundServiceDeposit) GetSigners

func (msg MsgRefundServiceDeposit) GetSigners() []sdk.AccAddress

GetSigners implements Msg.

func (MsgRefundServiceDeposit) Route

func (msg MsgRefundServiceDeposit) Route() string

func (MsgRefundServiceDeposit) Type

func (msg MsgRefundServiceDeposit) Type() string

Type implements Msg.

func (MsgRefundServiceDeposit) ValidateBasic

func (msg MsgRefundServiceDeposit) ValidateBasic() error

ValidateBasic implements Msg.

type MsgRespondService

type MsgRespondService struct {
	RequestID sdk.HexBytes   `json:"request_id"`
	Provider  sdk.AccAddress `json:"provider"`
	Result    string         `json:"result"`
	Output    string         `json:"output"`
}

MsgRespondService defines a message to respond a service request

func (MsgRespondService) GetSignBytes

func (msg MsgRespondService) GetSignBytes() []byte

func (MsgRespondService) GetSigners

func (msg MsgRespondService) GetSigners() []sdk.AccAddress

func (MsgRespondService) Route

func (msg MsgRespondService) Route() string

func (MsgRespondService) Type

func (msg MsgRespondService) Type() string

func (MsgRespondService) ValidateBasic

func (msg MsgRespondService) ValidateBasic() error

type MsgSetWithdrawAddress

type MsgSetWithdrawAddress struct {
	Provider        sdk.AccAddress `json:"provider"`
	WithdrawAddress sdk.AccAddress `json:"withdraw_address"`
}

MsgSetWithdrawAddress defines a message to set the withdrawal address for a service binding

func (MsgSetWithdrawAddress) GetSignBytes

func (msg MsgSetWithdrawAddress) GetSignBytes() []byte

GetSignBytes implements Msg.

func (MsgSetWithdrawAddress) GetSigners

func (msg MsgSetWithdrawAddress) GetSigners() []sdk.AccAddress

GetSigners implements Msg.

func (MsgSetWithdrawAddress) Route

func (msg MsgSetWithdrawAddress) Route() string

func (MsgSetWithdrawAddress) Type

func (msg MsgSetWithdrawAddress) Type() string

Type implements Msg.

func (MsgSetWithdrawAddress) ValidateBasic

func (msg MsgSetWithdrawAddress) ValidateBasic() error

ValidateBasic implements Msg.

type MsgStartRequestContext

type MsgStartRequestContext struct {
	RequestContextID sdk.HexBytes   `json:"request_context_id"`
	Consumer         sdk.AccAddress `json:"consumer"`
}

MsgStartRequestContext defines a message to resume a request context

func (MsgStartRequestContext) GetSignBytes

func (msg MsgStartRequestContext) GetSignBytes() []byte

GetSignBytes implements Msg.

func (MsgStartRequestContext) GetSigners

func (msg MsgStartRequestContext) GetSigners() []sdk.AccAddress

GetSigners implements Msg.

func (MsgStartRequestContext) Route

func (msg MsgStartRequestContext) Route() string

func (MsgStartRequestContext) Type

func (msg MsgStartRequestContext) Type() string

Type implements Msg.

func (MsgStartRequestContext) ValidateBasic

func (msg MsgStartRequestContext) ValidateBasic() error

ValidateBasic implements Msg.

type MsgUpdateRequestContext

type MsgUpdateRequestContext struct {
	RequestContextID  sdk.HexBytes     `json:"request_context_id"`
	Providers         []sdk.AccAddress `json:"providers"`
	ServiceFeeCap     sdk.Coins        `json:"service_fee_cap"`
	Timeout           int64            `json:"timeout"`
	RepeatedFrequency uint64           `json:"repeated_frequency"`
	RepeatedTotal     int64            `json:"repeated_total"`
	Consumer          sdk.AccAddress   `json:"consumer"`
}

MsgUpdateRequestContext defines a message to update a request context

func (MsgUpdateRequestContext) GetSignBytes

func (msg MsgUpdateRequestContext) GetSignBytes() []byte

GetSignBytes implements Msg.

func (MsgUpdateRequestContext) GetSigners

func (msg MsgUpdateRequestContext) GetSigners() []sdk.AccAddress

GetSigners implements Msg.

func (MsgUpdateRequestContext) Route

func (msg MsgUpdateRequestContext) Route() string

func (MsgUpdateRequestContext) Type

func (msg MsgUpdateRequestContext) Type() string

Type implements Msg.

func (MsgUpdateRequestContext) ValidateBasic

func (msg MsgUpdateRequestContext) ValidateBasic() error

ValidateBasic implements Msg.

type MsgUpdateServiceBinding

type MsgUpdateServiceBinding struct {
	ServiceName string         `json:"service_name"`
	Provider    sdk.AccAddress `json:"provider"`
	Deposit     sdk.Coins      `json:"deposit"`
	Pricing     string         `json:"pricing"`
	MinRespTime uint64         `json:"min_resp_time"`
}

MsgUpdateServiceBinding defines a message to update a service binding

func (MsgUpdateServiceBinding) GetSignBytes

func (msg MsgUpdateServiceBinding) GetSignBytes() []byte

GetSignBytes implements Msg.

func (MsgUpdateServiceBinding) GetSigners

func (msg MsgUpdateServiceBinding) GetSigners() []sdk.AccAddress

GetSigners implements Msg.

func (MsgUpdateServiceBinding) Route

func (msg MsgUpdateServiceBinding) Route() string

func (MsgUpdateServiceBinding) Type

func (msg MsgUpdateServiceBinding) Type() string

Type implements Msg.

func (MsgUpdateServiceBinding) ValidateBasic

func (msg MsgUpdateServiceBinding) ValidateBasic() error

ValidateBasic implements Msg.

type MsgWithdrawEarnedFees

type MsgWithdrawEarnedFees struct {
	Provider sdk.AccAddress `json:"provider"`
}

MsgWithdrawEarnedFees defines a message to withdraw the fees earned by the provider

func (MsgWithdrawEarnedFees) GetSignBytes

func (msg MsgWithdrawEarnedFees) GetSignBytes() []byte

GetSignBytes implements Msg.

func (MsgWithdrawEarnedFees) GetSigners

func (msg MsgWithdrawEarnedFees) GetSigners() []sdk.AccAddress

GetSigners implements Msg.

func (MsgWithdrawEarnedFees) Route

func (msg MsgWithdrawEarnedFees) Route() string

func (MsgWithdrawEarnedFees) Type

func (msg MsgWithdrawEarnedFees) Type() string

Type implements Msg.

func (MsgWithdrawEarnedFees) ValidateBasic

func (msg MsgWithdrawEarnedFees) ValidateBasic() error

ValidateBasic implements Msg.

type Params

type Params struct {
	MaxRequestTimeout    int64         `json:"max_request_timeout"`
	MinDepositMultiple   int64         `json:"min_deposit_multiple"`
	MinDeposit           sdk.Coins     `json:"min_deposit"`
	ServiceFeeTax        sdk.Dec       `json:"service_fee_tax"`
	SlashFraction        sdk.Dec       `json:"slash_fraction"`
	ComplaintRetrospect  time.Duration `json:"complaint_retrospect"`
	ArbitrationTimeLimit time.Duration `json:"arbitration_time_limit"`
	TxSizeLimit          uint64        `json:"tx_size_limit"`
}

service params

func (Params) Convert

func (p Params) Convert() interface{}

type Query

type Query interface {
	QueryDefinition(serviceName string) (SvceDefinition, sdk.Error)

	QueryBinding(serviceName string, provider sdk.AccAddress) (SvcBinding, sdk.Error)
	QueryBindings(serviceName string) ([]SvcBinding, sdk.Error)

	QueryRequest(requestID string) (Request, sdk.Error)
	QueryRequests(serviceName string, provider sdk.AccAddress) ([]Request, sdk.Error)
	QueryRequestsByReqCtx(requestContextID string, batchCounter uint64) ([]Request, sdk.Error)

	QueryResponse(requestID string) (Response, sdk.Error)
	QueryResponses(requestContextID string, batchCounter uint64) ([]Response, sdk.Error)

	QueryRequestContext(requestContextID string) (RequestContext, sdk.Error)
	QueryFees(provider string) (EarnedFees, sdk.Error)
}

Query defines a set of query interfaces in the service module

type Registry

type Registry map[string]RespondCallback

Registry defines a set of service invocation interfaces

type Request

type Request struct {
	ID                         string         `json:"id"`
	ServiceName                string         `json:"service_name"`
	Provider                   sdk.AccAddress `json:"provider"`
	Consumer                   sdk.AccAddress `json:"consumer"`
	Input                      string         `json:"input"`
	ServiceFee                 sdk.Coins      `json:"service_fee"`
	SuperMode                  bool           `json:"super_mode"`
	RequestHeight              int64          `json:"request_height"`
	ExpirationHeight           int64          `json:"expiration_height"`
	RequestContextID           string         `json:"request_context_id"`
	RequestContextBatchCounter uint64         `json:"request_context_batch_counter"`
}

Request defines a request which contains the detailed request data

type RequestContext

type RequestContext struct {
	ServiceName        string           `json:"service_name"`
	Providers          []sdk.AccAddress `json:"providers"`
	Consumer           sdk.AccAddress   `json:"consumer"`
	Input              string           `json:"input"`
	ServiceFeeCap      sdk.Coins        `json:"service_fee_cap"`
	Timeout            int64            `json:"timeout"`
	SuperMode          bool             `json:"super_mode"`
	Repeated           bool             `json:"repeated"`
	RepeatedFrequency  uint64           `json:"repeated_frequency"`
	RepeatedTotal      int64            `json:"repeated_total"`
	BatchCounter       uint64           `json:"batch_counter"`
	BatchRequestCount  uint16           `json:"batch_request_count"`
	BatchResponseCount uint16           `json:"batch_response_count"`
	BatchState         string           `json:"batch_state"`
	State              string           `json:"state"`
	ResponseThreshold  uint16           `json:"response_threshold"`
	ModuleName         string           `json:"module_name"`
}

RequestContext defines a context which holds request-related data

type RespondCallback

type RespondCallback func(reqCtxID, reqID, input string) (output string, result string)

RespondCallback defines the callback function of the service response

type Response

type Response struct {
	Provider                   sdk.AccAddress `json:"provider"`
	Consumer                   sdk.AccAddress `json:"consumer"`
	Output                     string         `json:"output"`
	Result                     string         `json:"error"`
	RequestContextID           string         `json:"request_context_id"`
	RequestContextBatchCounter uint64         `json:"request_context_batch_counter"`
}

Response defines a response

type Service

type Service interface {
	Tx
	Query
}

Service defines a set of interfaces in the service module

func NewClient

func NewClient(bc sdk.BaseClient) Service

type SvcBinding

type SvcBinding struct {
	ServiceName     string         `json:"service_name"`
	Provider        sdk.AccAddress `json:"provider"`
	Deposit         sdk.Coins      `json:"deposit"`
	Pricing         string         `json:"pricing"`
	WithdrawAddress sdk.AccAddress `json:"withdraw_address"`
	Available       bool           `json:"available"`
	DisabledTime    time.Time      `json:"disabled_time"`
}

SvcBinding defines a struct for service binding

type SvcBindingRequest

type SvcBindingRequest struct {
	ServiceName string       `json:"service_name"`
	Deposit     sdk.DecCoins `json:"deposit"`
	Pricing     string       `json:"pricing"`
	MinRespTime uint64       `json:"min_resp_time"`
}

SvcBindingRequest defines the request parameters of the service binding

type SvcBindingUpdateRequest

type SvcBindingUpdateRequest struct {
	ServiceName string       `json:"service_name"`
	Deposit     sdk.DecCoins `json:"deposit"`
	Pricing     string       `json:"pricing"`
	MinRespTime uint64       `json:"min_resp_time"`
}

SvcBindingUpdateRequest defines a message to update a service binding

type SvcDefinitionRequest

type SvcDefinitionRequest struct {
	ServiceName       string   `json:"service_name"`
	Description       string   `json:"description"`
	Tags              []string `json:"tags"`
	AuthorDescription string   `json:"author_description"`
	Schemas           string   `json:"schemas"`
}

SvcDefinitionRequest defines the request parameters of the service definition

type SvcInvocationRequest

type SvcInvocationRequest struct {
	ServiceName       string       `json:"service_name"`
	Providers         []string     `json:"providers"`
	Input             string       `json:"input"`
	ServiceFeeCap     sdk.DecCoins `json:"service_fee_cap"`
	Timeout           int64        `json:"timeout"`
	SuperMode         bool         `json:"super_mode"`
	Repeated          bool         `json:"repeated"`
	RepeatedFrequency uint64       `json:"repeated_frequency"`
	RepeatedTotal     int64        `json:"repeated_total"`
	Callback          InvokeCallback
}

SvcInvocationRequest defines the request parameters of the service call

type SvceDefinition

type SvceDefinition struct {
	Name              string         `json:"name"`
	Description       string         `json:"description"`
	Tags              []string       `json:"tags"`
	Author            sdk.AccAddress `json:"author"`
	AuthorDescription string         `json:"author_description"`
	Schemas           string         `json:"schemas"`
}

SvceDefinition represents a service definition

type Tx

type Tx interface {
	DefineService(request SvcDefinitionRequest, baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	BindService(request SvcBindingRequest, baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	UpdateServiceBinding(request SvcBindingUpdateRequest, baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	InvokeService(request SvcInvocationRequest, baseTx sdk.BaseTx) (requestContextID string, err sdk.Error)

	SetWithdrawAddress(withdrawAddress string, baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	DisableServiceBinding(serviceName string, baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	EnableServiceBinding(serviceName string,
		deposit sdk.DecCoins, baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	RefundServiceDeposit(serviceName string, baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	PauseRequestContext(requestContextID string, baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	StartRequestContext(requestContextID string, baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	KillRequestContext(requestContextID string, baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	UpdateRequestContext(request UpdateContextRequest, baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	WithdrawEarnedFees(baseTx sdk.BaseTx) (sdk.ResultTx, sdk.Error)

	SubscribeSingleServiceRequest(serviceName string,
		callback RespondCallback,
		baseTx sdk.BaseTx) (sdk.Subscription, sdk.Error)

	SubscribeServiceResponse(reqCtxID string,
		callback InvokeCallback) (sdk.Subscription, sdk.Error)
}

Tx defines a set of transaction interfaces in the service module

type UpdateContextRequest

type UpdateContextRequest struct {
	RequestContextID  string       `json:"request_context_id"`
	Providers         []string     `json:"providers"`
	ServiceFeeCap     sdk.DecCoins `json:"service_fee_cap"`
	Timeout           int64        `json:"timeout"`
	RepeatedFrequency uint64       `json:"repeated_frequency"`
	RepeatedTotal     int64        `json:"repeated_total"`
}

UpdateContextRequest defines a message to update a request context

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL