Skip to main content

Protobuf Documentation

oracle/v1/oracle.proto

ActiveValidator

ActiveValidator is information of currently active validator

FieldTypeLabelDescription
addressstringAddress is a validator address
poweruint64Power is an amount of token that the validator is holding

DataSource

DataSource is the data structure for storing data sources in the storage.

FieldTypeLabelDescription
ownerstringOwner is an address of the account who own the data source
namestringName is data source name used for display
descriptionstringDescription is data source description used for display
filenamestringFilename is string of file name used as reference for locating data source file stored in bandchain nodes
treasurystringTreasury is the account address who receive data source fee from requester.
feecosmos.base.v1beta1.CoinrepeatedFee is the data source fee per ask_count that data provider will receive from requester.

IBCChannel

IBCChannel is information of IBC protocol to allow communicating with other chain

FieldTypeLabelDescription
port_idstringPortID is port ID used for sending response packet when request is resolved.
channel_idstringChannelID is channel ID used for sending response packet when request is resolved.

OracleRequestPacketAcknowledgement

OracleRequestPacketAcknowledgement encodes an oracle request acknowledgement send back to requester chain.

FieldTypeLabelDescription
request_idint64RequestID is BandChain's unique identifier for this oracle request.

OracleRequestPacketData

OracleRequestPacketData encodes an oracle request sent from other blockchains to BandChain.

FieldTypeLabelDescription
client_idstringClientID is the unique identifier of this oracle request, as specified by the client. This same unique ID will be sent back to the requester with the oracle response.
oracle_script_idint64OracleScriptID is the unique identifier of the oracle script to be executed.
calldatabytesCalldata is the OBI-encoded calldata bytes available for oracle executor to read.
ask_countuint64AskCount is the number of validators that are requested to respond to this oracle request. Higher value means more security, at a higher gas cost.
min_countuint64MinCount is the minimum number of validators necessary for the request to proceed to the execution phase. Higher value means more security, at the cost of liveness.
fee_limitcosmos.base.v1beta1.CoinrepeatedFeeLimit is the maximum tokens that will be paid to all data source providers.
request_keystringRequestKey is the key from request chain to match data source fee payer on Bandchain
prepare_gasuint64PrepareGas is amount of gas to pay to prepare raw requests
execute_gasuint64ExecuteGas is amount of gas to reserve for executing

OracleResponsePacketData

OracleResponsePacketData encodes an oracle response from BandChain to the requester.

FieldTypeLabelDescription
client_idstringClientID is the unique identifier matched with that of the oracle request packet.
request_idint64RequestID is BandChain's unique identifier for this oracle request.
ans_countuint64AnsCount is the number of validators among to the asked validators that actually responded to this oracle request prior to this oracle request being resolved.
request_timeint64RequestTime is the UNIX epoch time at which the request was sent to BandChain.
resolve_timeint64ResolveTime is the UNIX epoch time at which the request was resolved to the final result.
resolve_statusResolveStatusResolveStatus is the status of this oracle request, which can be OK, FAILURE, or EXPIRED.
resultbytesResult is the final aggregated value encoded in OBI format. Only available if status if OK.

OracleScript

OracleScript is the data structure for storing oracle scripts in the storage.

FieldTypeLabelDescription
ownerstringOwner is an address of the account who own the oracle script
namestringName is oracle script name used for display
descriptionstringDescription is oracle script description used for display
filenamestringFilename is string of file name used as reference for locating compiled oracle script WASM file stored in bandchain nodes
schemastringSchema is the schema of the oracle script input/output which is formatted in OBI format e.g. "{symbol:string,multiplier:u64}/{px:u64}"
source_code_urlstringSourceCodeURL is the URL of oracle script's source code. It is recommendded to store source code on IPFS and get its URL to preserve decentralization.

Params

Params is the data structure that keeps the parameters of the oracle module.

FieldTypeLabelDescription
max_raw_request_countuint64MaxRawRequestCount is the maximum number of data source raw requests a request can make.
max_ask_countuint64MaxAskCount is the maximum number of validators a request can target.
expiration_block_countuint64ExpirationBlockCount is the number of blocks a request stays valid before it gets expired due to insufficient reports.
base_owasm_gasuint64BaseOwasmGas is the base amount of Cosmos-SDK gas charged for owasm execution.
per_validator_request_gasuint64PerValidatorRequestGas is the amount of Cosmos-SDK gas charged per requested validator.
sampling_try_countuint64SamplingTryCount the number of validator sampling tries to pick the highest voting power subset of validators to perform an oracle task.
oracle_reward_percentageuint64OracleRewardPercentage is the percentage of block rewards allocated to active oracle validators.
inactive_penalty_durationuint64InactivePenaltyDuration is the duration period where a validator cannot activate back after missing an oracle report.
ibc_request_enabledboolIBCRequestEnabled is a flag indicating whether sending oracle request via IBC is allowed

PendingResolveList

PendingResolveList is a list of requests that are waiting to be resolved

FieldTypeLabelDescription
request_idsint64repeatedRequestIDs is a list of request IDs that are waiting to be resolved

PriceResult

PriceResult is a result from standard price reference

FieldTypeLabelDescription
symbolstringSymbol is unit of data indicating what the data is. It is price currencies for this case.
multiplieruint64Multiplier is a number used for left-shifting value to eliminate decimal digits
pxuint64Px is the actual data, which is rate number multiplied by the multiplier.
request_idint64RequestID is oracle request ID that contains this price
resolve_timeint64ResolveTime is epoch timestamp indicating the time when the request had been resolved

RawReport

RawRequest is the data structure for storing raw reporter in the storage.

FieldTypeLabelDescription
external_idint64ExternalID is an ID of the raw request
exit_codeuint32ExitCode is status code provided by validators to specify error, if any. Exit code is usually filled by the exit code returned from execution of specified data source script. With code 0 means there is no error.
databytesData is raw result provided by validators. It is usually filled by the result from execution of specified data source script.

RawRequest

RawRequest is the data structure for storing raw requests in the storage.

FieldTypeLabelDescription
external_idint64ExternalID is an ID of the raw request
data_source_idint64DataSourceID is an ID of data source script that relates to the raw request
calldatabytesCalldata is the data used as argument params for executing data source script

Report

Report is the data structure for storing reports in the storage.

FieldTypeLabelDescription
validatorstringValidator is a validator address who submit the report
in_before_resolveboolInBeforeResolve indicates whether the report is submitted before the request resolved
raw_reportsRawReportrepeatedRawReports is list of raw reports provided by the validator. Each raw report has different external ID

ReportersPerValidator

ReportersPerValidator is list of reporters that is associated with a validator

FieldTypeLabelDescription
validatorstringValidator a validator address
reportersstringrepeatedReporters is a list of reporter account addresses associated with the validator

Request

Request is the data structure for storing requests in the storage.

FieldTypeLabelDescription
oracle_script_idint64OracleScriptID is ID of an oracle script
calldatabytesCalldata is the data used as argument params for the oracle script
requested_validatorsstringrepeatedRequestedValidators is a list of validator addresses that are assigned for fulfilling the request
min_countuint64MinCount is minimum number of validators required for fulfilling the request
request_heightint64RequestHeight is block height that the request has been created
request_timeuint64RequestTime is timestamp of the chain's block which contains the request
client_idstringClientID is arbitrary id provided by requester. It is used by client-side for referencing the request
raw_requestsRawRequestrepeatedRawRequests is a list of raw requests specified by execution of oracle script
ibc_channelIBCChannelIBCChannel is an IBC channel info of the other chain, which contains a channel and a port to allow bandchain connect to that chain. This field allows other chain be able to request data from bandchain via IBC.
execute_gasuint64ExecuteGas is amount of gas to reserve for executing

RequestVerification

RequestVerification is a message that is constructed and signed by a reporter to be used as a part of verification of oracle request.

FieldTypeLabelDescription
chain_idstringChainID is the ID of targeted chain
validatorstringValidator is an validator address
request_idint64RequestID is the targeted request ID
external_idint64ExternalID is the oracle's external ID of data source

Result

Result encodes a result of request and store in chain

FieldTypeLabelDescription
client_idstringClientID is the unique identifier of this oracle request, as specified by the client. This same unique ID will be sent back to the requester with the oracle response.
oracle_script_idint64OracleScriptID is the unique identifier of the oracle script to be executed.
calldatabytesCalldata is the calldata bytes available for oracle executor to read.
ask_countuint64AskCount is the number of validators that are requested to respond to this oracle request. Higher value means more security, at a higher gas cost.
min_countuint64MinCount is the minimum number of validators necessary for the request to proceed to the execution phase. Higher value means more security, at the cost of liveness.
request_idint64RequestID is BandChain's unique identifier for this oracle request.
ans_countuint64AnsCount is the number of validators among to the asked validators that actually responded to this oracle request prior to this oracle request being resolved.
request_timeint64RequestTime is the UNIX epoch time at which the request was sent to BandChain.
resolve_timeint64ResolveTime is the UNIX epoch time at which the request was resolved to the final result.
resolve_statusResolveStatusResolveStatus is the status of this oracle request, which can be OK, FAILURE, or EXPIRED.
resultbytesResult is the final aggregated value only available if status if OK.

ValidatorStatus

ValidatorStatus maintains whether a validator is an active oracle provider.

FieldTypeLabelDescription
is_activeboolIsActive is a boolean indicating active status of validator. The validator will be deactivated when they are unable to send reports to fulfill oracle request before the request expired.
sincegoogle.protobuf.TimestampSince is a block timestamp when validator has been activated/deactivated

ResolveStatus

ResolveStatus encodes the status of an oracle request.

NameNumberDescription
RESOLVE_STATUS_OPEN_UNSPECIFIED0Open - the request is not yet resolved.
RESOLVE_STATUS_SUCCESS1Success - the request has been resolved successfully with no errors.
RESOLVE_STATUS_FAILURE2Failure - an error occured during the request's resolve call.
RESOLVE_STATUS_EXPIRED3Expired - the request does not get enough reports from validator within the timeframe.

Top

oracle/v1/query.proto

QueryActiveValidatorsRequest

QueryActiveValidatorsRequest is request type for the Query/ActiveValidators RPC method.

QueryActiveValidatorsResponse

QueryActiveValidatorsResponse is response type for the Query/ActiveValidators RPC method.

FieldTypeLabelDescription
validatorsActiveValidatorrepeatedValidators is a list of active validators

QueryCountsRequest

QueryCountsRequest is request type for the Query/Count RPC method.

QueryCountsResponse

QueryCountsResponse is response type for the Query/Count RPC method.

FieldTypeLabelDescription
data_source_countint64DataSourceCount is total number of data sources available on the chain
oracle_script_countint64OracleScriptCount is total number of oracle scripts available on the chain
request_countint64RequestCount is total number of requests submitted to the chain

QueryDataRequest

QueryDataRequest is request type for the Query/Data RPC method.

FieldTypeLabelDescription
data_hashstringDataHash is SHA256 hash of the file's content, which can be data source or oracle script

QueryDataResponse

QueryDataResponse is response type for the Query/Data RPC method.

FieldTypeLabelDescription
databytesData is file's content, which can be data source or oracle script

QueryDataSourceRequest

QueryDataSourceRequest is request type for the Query/DataSource RPC method.

FieldTypeLabelDescription
data_source_idint64DataSourceID is ID of a data source script

QueryDataSourceResponse

QueryDataSourceResponse is response type for the Query/DataSource RPC method.

FieldTypeLabelDescription
data_sourceDataSourceDataSource is summary information of a data source

QueryOracleScriptRequest

QueryOracleScriptRequest is request type for the Query/OracleScript RPC method.

FieldTypeLabelDescription
oracle_script_idint64OracleScriptID is ID of an oracle script

QueryOracleScriptResponse

QueryOracleScriptResponse is response type for the Query/OracleScript RPC method.

FieldTypeLabelDescription
oracle_scriptOracleScriptOracleScript is summary information of an oracle script

QueryParamsRequest

QueryParamsRequest is request type for the Query/Params RPC method.

QueryParamsResponse

QueryParamsResponse is response type for the Query/Params RPC method.

FieldTypeLabelDescription
paramsParamspagination defines an optional pagination for the request.

QueryPendingRequestsRequest

QueryPendingRequestRequest is request type for the Query/PendingRequests RPC method.

FieldTypeLabelDescription
validator_addressstringValidatorAddress is address of a validator

QueryPendingRequestsResponse

QueryPendingRequestResponse is response type for the Query/PendingRequests RPC method.

FieldTypeLabelDescription
request_idsint64repeatedRequestIDs is a list of pending request IDs assigned to the given validator

QueryReportersRequest

QueryReportersRequest is request type for the Query/Reporters RPC method.

FieldTypeLabelDescription
validator_addressstringValidatorAddress is a validator address

QueryReportersResponse

QueryReportersResponse is response type for the Query/Reporters RPC method.

FieldTypeLabelDescription
reporterstringrepeatedReporter is a list of account addresses of reporters

QueryRequestPoolRequest

QueryRequestPoolRequest is request type for the Query/RequestPool RPC method.

FieldTypeLabelDescription
request_keystringRequestKey is a user-generated key for each request pool
port_idstringPortID is the corresponding port to the request pool
channel_idstringChannelID is the corresponding channel to the request pool

QueryRequestPoolResponse

QueryRequestPoolResponse is response type for the Query/RequestPool RPC method.

FieldTypeLabelDescription
request_pool_addressstringRequestPoolAddress is an address of a request pool
balancecosmos.base.v1beta1.Coinrepeated

QueryRequestPriceRequest

QueryRequestPriceRequest is request type for the Query/RequestPrice RPC method.

FieldTypeLabelDescription
symbolsstringrepeatedSymbol is unit of data indicating what the data is
ask_countint64AskCount is number of validators allowed for fulfilling the request
min_countint64MinCount is number of validators required for fulfilling the request

QueryRequestPriceResponse

QueryRequestPriceResponse is response type for the Query/RequestPrice RPC method.

FieldTypeLabelDescription
price_resultsPriceResultrepeatedPriceResult is a list of price results for given symbols

QueryRequestRequest

QueryRequestRequest is request type for the Query/Request RPC method.

FieldTypeLabelDescription
request_idint64RequestID is ID of an oracle request

QueryRequestResponse

QueryRequestResponse is response type for the Query/Request RPC method.

FieldTypeLabelDescription
requestRequestRequest is an oracle request
reportsReportrepeatedReports is list of result data as raw reports that are fulfilled by assigned validators
resultResultResult is a final form of result data

QueryRequestSearchRequest

QueryRequestSearchRequest is request type for the Query/RequestSearch RPC method.

FieldTypeLabelDescription
oracle_script_idint64OracleScriptID is ID of an oracle script
calldatastringCalldata is OBI-encoded data in hex format as argument params for the oracle script
ask_countuint64AskCount is number of validators allowed for fulfilling the request
min_countuint64MinCount is number of validators required for fulfilling the request

QueryRequestSearchResponse

QueryRequestSearchResponse is response type for the Query/RequestSearch RPC method.

FieldTypeLabelDescription
requestQueryRequestResponseRequest is details of an oracle request

QueryRequestVerificationRequest

QueryRequestVerificationRequest is request type for the Query/RequestVerification RPC

FieldTypeLabelDescription
chain_idstringChainID is the chain ID to identify which chain ID is used for the verification
validatorstringValidator is a validator address
request_idint64RequestID is oracle request ID
external_idint64ExternalID is an oracle's external ID
reporterstringReporter is an bech32-encoded public key of the reporter authorized by the validator
signaturebytesSignature is a signature signed by the reporter using reporter's private key

QueryRequestVerificationResponse

QueryRequestVerificationResponse is response type for the Query/RequestVerification RPC

FieldTypeLabelDescription
chain_idstringChainID is the targeted chain ID
validatorstringValidator is the targeted validator address
request_idint64RequestID is the ID of targeted request
external_idint64ExternalID is the ID of targeted oracle's external data source
data_source_idint64DataSourceID is the ID of a data source that relates to the targeted external ID

QueryValidatorRequest

QueryValidatorRequest is request type for the Query/Validator RPC method.

FieldTypeLabelDescription
validator_addressstringValidatorAddress is address of a validator

QueryValidatorResponse

QueryValidatorResponse is response type for the Query/Validator RPC method.

FieldTypeLabelDescription
statusValidatorStatusStatus is status of a validator e.g. active/inactive

Query

Query defines the gRPC querier service.

Method NameRequest TypeResponse TypeDescription
CountsQueryCountsRequestQueryCountsResponseCounts queries the number of existing data sources, oracle scripts, and requests.
DataQueryDataRequestQueryDataResponseData queries content of the data source or oracle script for given SHA256 file hash.
DataSourceQueryDataSourceRequestQueryDataSourceResponseDataSource queries data source summary info for given data source id.
OracleScriptQueryOracleScriptRequestQueryOracleScriptResponseOracleScript queries oracle script summary info for given oracle script id.
RequestQueryRequestRequestQueryRequestResponseRequest queries request info for given request id.
PendingRequestsQueryPendingRequestsRequestQueryPendingRequestsResponsePendingRequests queries list of pending request IDs assigned to given validator.
ValidatorQueryValidatorRequestQueryValidatorResponseValidator queries properties of given validator address.
ReportersQueryReportersRequestQueryReportersResponseReporters queries all reporters associated with given validator address.
ActiveValidatorsQueryActiveValidatorsRequestQueryActiveValidatorsResponseActiveValidators queries all active oracle validators.
ParamsQueryParamsRequestQueryParamsResponseParams queries parameters used for runnning bandchain network.
RequestSearchQueryRequestSearchRequestQueryRequestSearchResponseRequestSearch queries the latest request that match search criteria.
RequestPriceQueryRequestPriceRequestQueryRequestPriceResponseRequestPrice queries the latest price on standard price reference oracle script.
RequestVerificationQueryRequestVerificationRequestQueryRequestVerificationResponseRequestVerification verifies a request to make sure that all information that will be used to report the data is valid
RequestPoolQueryRequestPoolRequestQueryRequestPoolResponseRequestPool queries the request pool information corresponding to the given port, channel, and request key.

Top

oracle/v1/tx.proto

MsgActivate

MsgEditOracleScript is a message for activating a validator to become an oracle provider. However, the activation can be revoked once the validator is unable to provide data to fulfill requests

FieldTypeLabelDescription
validatorstringValidator is the validator address who sign this message and request to be activated.

MsgActivateResponse

MsgActivateResponse is response data for MsgActivate message

MsgAddReporter

MsgAddReporter is a message for adding a new reporter for a validator.

FieldTypeLabelDescription
validatorstringValidator is the validator address who requested to add a new reporter. Note that this is the signer.
reporterstringReporter is the account address to be added as a reporter to the validator.

MsgAddReporterResponse

MsgAddReporterResponse is response data for MsgAddReporter message

MsgCreateDataSource

MsgCreateDataSource is a message for creating a new data source.

FieldTypeLabelDescription
namestringName is the name of this data source used for display (optional).
descriptionstringDescription is the description of this data source used for display (optional).
executablebytesExecutable is the content of executable script or binary file to be run by validators upon execution.
feecosmos.base.v1beta1.CoinrepeatedFee is the data source fee per ask_count that data provider will receive from requester.
treasurystringTreasury is the account address who receive data source fee from requester.
ownerstringOwner is the account address who is allowed to make further changes to the data source.
senderstringSender is the signer of this message.

MsgCreateDataSourceResponse

MsgCreateDataSourceResponse is response data for MsgCreateDataSource message

MsgCreateOracleScript

MsgCreateOracleScript is a message for creating an oracle script.

FieldTypeLabelDescription
namestringName is the name of this oracle script used for display (optional).
descriptionstringDescription is the description of this oracle script used for display (optional).
schemastringSchema is the OBI schema of this oracle script (optional).
source_code_urlstringSourceCodeURL is the absolute URI to the script's source code (optional).
codebytesCode is the oracle WebAssembly binary code. Can be raw of gzip compressed.
ownerstringOwner is the address who is allowed to make further changes to the oracle script.
senderstringSender is the signer of this message.

MsgCreateOracleScriptResponse

MsgCreateOracleScriptResponse is response data for MsgCreateOracleScript message

MsgEditDataSource

MsgEditDataSource is a message for editing an existing data source.

FieldTypeLabelDescription
data_source_idint64DataSourceID is the unique identifier of the data source to be edited.
namestringName is the name of this data source used for display (optional).
descriptionstringDescription is the description of this data source used for display (optional).
executablebytesExecutable is the executable script or binary to be run by validators upon execution.
feecosmos.base.v1beta1.CoinrepeatedFee is the data source fee per ask_count that data provider will receive from requester.
treasurystringTreasury is the address who receive data source fee from requester.
ownerstringOwner is the address who is allowed to make further changes to the data source.
senderstringSender is the signer of this message. Must be the current data source's owner.

MsgEditDataSourceResponse

MsgEditDataSourceResponse is response data for MsgEditDataSource message

MsgEditOracleScript

MsgEditOracleScript is a message for editing an existing oracle script.

FieldTypeLabelDescription
oracle_script_idint64OracleScriptID is the unique identifier of the oracle script to be edited.
namestringName is the name of this oracle script used for display (optional).
descriptionstringDescription is the description of this oracle script used for display (optional).
schemastringSchema is the OBI schema of this oracle script (optional).
source_code_urlstringSourceCodeURL is the absolute URI to the script's source code (optional).
codebytesCode is the oracle WebAssembly binary code. Can be raw of gzip compressed.
ownerstringOwner is an account address who is allowed to make further changes to the oracle script.
senderstringSender is an account address who sign this message. Must be the current oracle script's owner.

MsgEditOracleScriptResponse

MsgEditOracleScriptResponse is response data for MsgEditOracleScript message

MsgRemoveReporter

MsgAddReporter is a message for removing an existing reporter from a validator.

FieldTypeLabelDescription
validatorstringValidator is the validator address who requested to remove an existing reporter. Note that this is the signer.
reporterstringReporter is the account address to be removed from being the validator's reporter.

MsgRemoveReporterResponse

MsgRemoveReporterResponse is response data for MsgRemoveReporter message

MsgReportData

MsgReportData is a message for reporting to a data request by a validator.

FieldTypeLabelDescription
request_idint64RequestID is the identifier of the request to be reported to.
raw_reportsRawReportrepeatedRawReports is the list of report information provided by data sources identified by external ID
validatorstringValidator is the address of the validator that owns this report.
reporterstringReporter is the message signer who submits this report transaction for the validator.

MsgReportDataResponse

MsgReportDataResponse is response data for MsgReportData message

MsgRequestData

MsgRequestData is a message for sending a data oracle request.

FieldTypeLabelDescription
oracle_script_idint64OracleScriptID is the identifier of the oracle script to be called.
calldatabytesCalldata is the OBI-encoded call parameters for the oracle script.
ask_countuint64AskCount is the number of validators to perform the oracle task.
min_countuint64MinCount is the minimum number of validators sufficient to resolve the oracle tasks.
client_idstringClientID is the client-provided unique identifier to track the request.
fee_limitcosmos.base.v1beta1.CoinrepeatedFeeLimit is the maximum tokens that will be paid to all data source providers.
prepare_gasuint64PrepareGas is amount of gas to pay to prepare raw requests
execute_gasuint64ExecuteGas is amount of gas to reserve for executing
senderstringSender is an account address of message sender.

MsgRequestDataResponse

MsgRequestDataResponse is response data for MsgRequestData message

Msg

Msg defines the oracle Msg service.

Method NameRequest TypeResponse TypeDescription
RequestDataMsgRequestDataMsgRequestDataResponseRequestData defines a method for submitting a new request.
ReportDataMsgReportDataMsgReportDataResponseReportData defines a method for reporting a data to resolve the request.
CreateDataSourceMsgCreateDataSourceMsgCreateDataSourceResponseCreateDataSource defines a method for creating a new data source.
EditDataSourceMsgEditDataSourceMsgEditDataSourceResponseEditDataSource defines a method for editing an existing data source.
CreateOracleScriptMsgCreateOracleScriptMsgCreateOracleScriptResponseCreateOracleScript defines a method for creating a new oracle script.
EditOracleScriptMsgEditOracleScriptMsgEditOracleScriptResponseEditOracleScript defines a method for editing an existing oracle script.
ActivateMsgActivateMsgActivateResponseActivate defines a method for applying to be an oracle validator.
AddReporterMsgAddReporterMsgAddReporterResponseAddReporter defines a method for adding a new reporter for a validator.
RemoveReporterMsgRemoveReporterMsgRemoveReporterResponseRemoveReporter defines a method for removing an reporter from a validator

Top

oracle/v1/genesis.proto

GenesisState

GenesisState defines the oracle module's genesis state.

FieldTypeLabelDescription
paramsParamsParams defines all the paramaters of the module.
data_sourcesDataSourcerepeatedDataSources are data sources to be installed during genesis phase
oracle_scriptsOracleScriptrepeatedOracleScripts are list of oracle scripts to be installed during genesis phase
reportersReportersPerValidatorrepeatedReporters are mapping between reporter's account address (key) and validator's validator address (value)

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)