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
- type EarnedFees
- type InvokeCallback
- type MsgBindService
- type MsgCallService
- type MsgDefineService
- type MsgDisableServiceBinding
- type MsgEnableServiceBinding
- type MsgKillRequestContext
- type MsgPauseRequestContext
- type MsgRefundServiceDeposit
- type MsgRespondService
- type MsgSetWithdrawAddress
- type MsgStartRequestContext
- type MsgUpdateRequestContext
- type MsgUpdateServiceBinding
- type MsgWithdrawEarnedFees
- type Params
- type Query
- type Registry
- type Request
- type RequestContext
- type RespondCallback
- type Response
- type Service
- type SvcBinding
- type SvcBindingRequest
- type SvcBindingUpdateRequest
- type SvcDefinitionRequest
- type SvcInvocationRequest
- type SvceDefinition
- type Tx
- type UpdateContextRequest
Constants ¶
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
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 ¶
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 ¶
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