Get oracle spec
GET/api/v2/oracle/spec/:oracleSpecId
Get an oracle spec by ID. Oracle spec IDs can be found by querying markets that use them as a data source
Request
Path Parameters
Oracle spec ID to request data for.
Responses
- 200
- 500
- default
A successful response.
- application/json
- Schema
- Example (from schema)
Schema
- Array [
- Array [
- ]
- ]
- Array [
- ]
- Array [
- Array [
- ]
- ]
- Array [
- ]
- Array [
- ]
- Array [
- ]
- Array [
- ]
- STATUS_UNSPECIFIED: Default value.
- STATUS_ACTIVE: STATUS_ACTIVE describes an active data source spec.
- STATUS_DEACTIVATED: STATUS_DEACTIVATED describes a 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
Represents the top level object that handles data sources. Data source definition 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.
ethOracle object
Contains the data specification that is received from Ethereum sources.
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.
filters object[]
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.
Name of the method on the contract to call.
normalisers object[]
Normalisers are used to convert the data returned from the contract method into a standard format. The key of the map is the name of the property, which identifies the specific piece of data to other parts of the data sourcing framework, for example filters. The value is a JSONPath expression for expressing where in the contract call result the required data is located, for example $[0] indicates the first result. $[1].price would look in the second result returned from the contract for a structure with a key called 'price' and use that if it exists.
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 initial 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
Top level object used for all internal data sources. It contains one of any of the defined source type variants.
time object
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.
timeTrigger object
Internal data source used for emitting timestamps automatically using predefined intervals and conditions.
conditions object[]
Conditions that the timestamps need to 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.
triggers object[]
Repeat the trigger every n seconds after the initial. If no time for initial was specified, begin repeating immediately.
Trigger when the vega time is greater or equal to this time, in Unix seconds.
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": {
"ethOracle": {
"abi": "string",
"address": "string",
"args": [
{}
],
"filters": [
{
"conditions": [
{
"operator": "OPERATOR_UNSPECIFIED",
"value": "string"
}
],
"key": {
"name": "string",
"numberDecimalPlaces": "string",
"type": "TYPE_UNSPECIFIED"
}
}
],
"method": "string",
"normalisers": [
{
"expression": "string",
"name": "string"
}
],
"requiredConfirmations": "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"
}
]
},
"timeTrigger": {
"conditions": [
{
"operator": "OPERATOR_UNSPECIFIED",
"value": "string"
}
],
"triggers": [
{
"every": "string",
"initial": "string"
}
]
}
}
},
"id": "string",
"status": "STATUS_UNSPECIFIED",
"updatedAt": "string"
}
}
}
}
An internal server error
- application/json
- Schema
- Example (from schema)
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.
- application/json
- Schema
- Example (from schema)
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"
}