Get oracle spec
Get an oracle spec by ID. Oracle spec IDs can be found by querying markets that use them as a data source
Path Parameters
Oracle spec ID to request data for.
- 200
- 500
- default
A successful response.
Schema
- Array [
- Array [
- ]
- ]
- Array [
- ]
- Array [
- ]
- STATUS_UNSPECIFIED: Default value.
- STATUS_ACTIVE: STATUS_ACTIVE describes an active data source spec.
- STATUS_DEACTIVATED: STATUS_DEACTIVATED describes an data source spec that is not listening to data anymore.
oracleSpec object
External data spec matching the ID.
externalDataSourceSpec object
spec object
Data source spec describes the data source base that a product or a risk model wants to get from the data source engine. This message contains additional information used by the API.
data object
DataSourceDefinition represents the top level object that deals with data sources. DataSourceDefinition can be external or internal, with whatever number of data sources are defined for each type in the child objects below.
external object
DataSourceDefinitionExternal is the top level object used for all external data sources.
It contains one of any of the defined SourceType
variants.
ethCall object
Specifies a data source that derives its content from calling a read method on an Ethereum contract.
The ABI of that contract.
Ethereum address of the contract to call.
List of arguments to pass to method call. Protobuf 'Value' wraps an arbitrary JSON type that is mapped to an Ethereum type according to the ABI.
Name of the method on the contract to call.
trigger object
Conditions for determining when to call the contract method.
timeTrigger object
Trigger for an Ethereum call based on the Ethereum block timestamp. Can be one-off or repeating.
Repeat the call every n seconds after the inital call. If no time for initial call was specified, begin repeating immediately.
Trigger when the Ethereum time is greater or equal to this time, in Unix seconds.
If repeating, stop once Ethereum time is greater than this time, in Unix seconds. If not set, then repeat indefinitely.
oracle object
All types of external data sources use the same configuration set for meeting requirements in order for the data to be useful for Vega - valid signatures and matching filters.
filters object[]
Filters describes which source data are considered of interest or not for the product (or the risk model).
conditions object[]
Conditions that should be matched by the data to be considered of interest.
Possible values: [OPERATOR_UNSPECIFIED
, OPERATOR_EQUALS
, OPERATOR_GREATER_THAN
, OPERATOR_GREATER_THAN_OR_EQUAL
, OPERATOR_LESS_THAN
, OPERATOR_LESS_THAN_OR_EQUAL
]
Default value: OPERATOR_UNSPECIFIED
Type of comparison to make on the value.
Value to be compared with by the operator.
key object
Data source's data property key targeted by the filter.
Name of the property.
Possible values: [TYPE_UNSPECIFIED
, TYPE_EMPTY
, TYPE_INTEGER
, TYPE_STRING
, TYPE_BOOLEAN
, TYPE_DECIMAL
, TYPE_TIMESTAMP
]
Default value: TYPE_UNSPECIFIED
Data type of the property.
signers object[]
Signers is the list of authorized signatures that signed the data for this source. All the signatures in the data source data should be contained in this external source. All the signatures in the data should be contained in this list.
ethAddress object
In case of an open oracle - Ethereum address will be submitted.
pubKey object
List of authorized public keys that signed the data for this source. All the public keys in the data should be contained in these public keys.
internal object
DataSourceDefinitionInternal is the top level object used for all internal data sources.
It contains one of any of the defined SourceType
variants.
time object
DataSourceSpecConfigurationTime is the internal data source used for emitting timestamps.
conditions object[]
Conditions that the timestamps should meet in order to be considered.
Possible values: [OPERATOR_UNSPECIFIED
, OPERATOR_EQUALS
, OPERATOR_GREATER_THAN
, OPERATOR_GREATER_THAN_OR_EQUAL
, OPERATOR_LESS_THAN
, OPERATOR_LESS_THAN_OR_EQUAL
]
Default value: OPERATOR_UNSPECIFIED
Type of comparison to make on the value.
Value to be compared with by the operator.
Hash generated from the DataSpec data.
Possible values: [STATUS_UNSPECIFIED
, STATUS_ACTIVE
, STATUS_DEACTIVATED
]
Default value: STATUS_UNSPECIFIED
{
"oracleSpec": {
"externalDataSourceSpec": {
"spec": {
"createdAt": "string",
"data": {
"external": {
"ethCall": {
"abi": [
{}
],
"address": "string",
"args": [
{}
],
"method": "string",
"trigger": {
"timeTrigger": {
"every": "string",
"initial": "string",
"until": "string"
}
}
},
"oracle": {
"filters": [
{
"conditions": [
{
"operator": "OPERATOR_UNSPECIFIED",
"value": "string"
}
],
"key": {
"name": "string",
"numberDecimalPlaces": "string",
"type": "TYPE_UNSPECIFIED"
}
}
],
"signers": [
{
"ethAddress": {
"address": "string"
},
"pubKey": {
"key": "string"
}
}
]
}
},
"internal": {
"time": {
"conditions": [
{
"operator": "OPERATOR_UNSPECIFIED",
"value": "string"
}
]
}
}
},
"id": "string",
"status": "STATUS_UNSPECIFIED",
"updatedAt": "string"
}
}
}
}
An internal server error
Schema
- Array [
- If no scheme is provided,
https
is assumed. - An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error.
- Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
- ]
details object[]
A URL/resource name that uniquely identifies the type of the serialized
protocol buffer message. This string must contain at least
one "/" character. The last segment of the URL's path must represent
the fully qualified name of the type (as in
path/google.protobuf.Duration
). The name should be in a canonical form
(e.g., leading "." is not accepted).
In practice, teams usually precompile into the binary all types that they
expect it to use in the context of Any. However, for URLs which use the
scheme http
, https
, or no scheme, one can optionally set up a type
server that maps type URLs to message definitions as follows:
Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
Schemes other than http
, https
(or the empty scheme) might be
used with implementation specific semantics.
{
"code": 0,
"details": [
{
"@type": "string"
}
],
"message": "string"
}
An unexpected error response.
Schema
- Array [
- If no scheme is provided,
https
is assumed. - An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error.
- Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
- ]
details object[]
A URL/resource name that uniquely identifies the type of the serialized
protocol buffer message. This string must contain at least
one "/" character. The last segment of the URL's path must represent
the fully qualified name of the type (as in
path/google.protobuf.Duration
). The name should be in a canonical form
(e.g., leading "." is not accepted).
In practice, teams usually precompile into the binary all types that they
expect it to use in the context of Any. However, for URLs which use the
scheme http
, https
, or no scheme, one can optionally set up a type
server that maps type URLs to message definitions as follows:
Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
Schemes other than http
, https
(or the empty scheme) might be
used with implementation specific semantics.
{
"code": 0,
"details": [
{
"@type": "string"
}
],
"message": "string"
}