From 71e8235faf23a7fa1c7be42146e75e0a6858d664 Mon Sep 17 00:00:00 2001 From: Matthew Russell Date: Tue, 8 Nov 2022 19:05:48 -0600 Subject: [PATCH] chore(#1905): updates to accomodate changes to datasource apis (#1919) * chore: updates to accomodate change to datasource apis * chore: update types for proposal submission * chore: update queries to work with latest core changes --- .../src/support/mocks/commons.ts | 2 +- .../app/routes/oracles/OracleSpecs.graphql | 86 +++- .../oracles/__generated__/OracleSpecs.ts | 210 +++++++-- .../oracles/__generated___/OracleSpecs.ts | 88 +++- .../explorer/src/app/routes/oracles/index.tsx | 101 +++- .../src/fixtures/proposals/new-market.json | 24 +- .../src/fixtures/proposals/update-market.json | 24 +- .../proposal/__generated__/Proposal.ts | 436 +++++++++++++----- .../proposal/proposal-container.tsx | 184 ++++++-- .../mocks/generate-market-info-query.ts | 12 +- .../src/support/mocks/generate-market.ts | 4 +- .../client-pages/market/trade-grid.tsx | 2 +- .../src/lib/__generated__/MarketLiquidity.ts | 2 +- .../components/market-info/MarketInfo.graphql | 6 +- .../market-info/__generated___/MarketInfo.ts | 8 +- .../components/market-info/info-market.tsx | 8 +- .../src/lib/__generated___/market.ts | 6 +- libs/market-list/src/lib/market.graphql | 2 +- libs/types/src/__generated__/globalTypes.ts | 18 +- libs/types/src/__generated__/types.ts | 353 +++++++++----- libs/types/src/global-types-mappings.ts | 2 +- libs/wallet/src/connectors/vega-connector.ts | 30 +- 22 files changed, 1189 insertions(+), 419 deletions(-) diff --git a/apps/console-lite-e2e/src/support/mocks/commons.ts b/apps/console-lite-e2e/src/support/mocks/commons.ts index b6a846703..5d1c3a73b 100644 --- a/apps/console-lite-e2e/src/support/mocks/commons.ts +++ b/apps/console-lite-e2e/src/support/mocks/commons.ts @@ -138,7 +138,7 @@ export const singleMarket: SingleMarketFieldsFragment = { id: 'dai-id', name: 'DAI Name', }, - oracleSpecForTradingTermination: { + dataSourceSpecForTradingTermination: { id: 'oid', }, }, diff --git a/apps/explorer/src/app/routes/oracles/OracleSpecs.graphql b/apps/explorer/src/app/routes/oracles/OracleSpecs.graphql index 719a75e81..4deb4346d 100644 --- a/apps/explorer/src/app/routes/oracles/OracleSpecs.graphql +++ b/apps/explorer/src/app/routes/oracles/OracleSpecs.graphql @@ -2,23 +2,79 @@ query OracleSpecs { oracleSpecsConnection { edges { node { - status - id - createdAt - updatedAt - pubKeys - filters { - key { - name - type - } - conditions { - value - operator + dataSourceSpec { + spec { + id + createdAt + updatedAt + status + data { + sourceType { + ... on DataSourceDefinitionInternal { + sourceType { + ... on DataSourceSpecConfigurationTime { + conditions { + value + operator + } + } + } + } + ... on DataSourceDefinitionExternal { + sourceType { + ... on DataSourceSpecConfiguration { + signers { + signer { + ... on ETHAddress { + address + } + ... on PubKey { + key + } + } + } + filters { + key { + name + type + } + conditions { + value + operator + } + } + } + } + } + } + } } } - data { - pubKeys + dataConnection { + edges { + node { + externalData { + data { + signers { + signer { + ... on ETHAddress { + address + } + ... on PubKey { + key + } + } + } + data { + name + value + } + matchedSpecIds + broadcastAt + } + } + } + } } } } diff --git a/apps/explorer/src/app/routes/oracles/__generated__/OracleSpecs.ts b/apps/explorer/src/app/routes/oracles/__generated__/OracleSpecs.ts index 2bfe6a6eb..9f4d435cc 100644 --- a/apps/explorer/src/app/routes/oracles/__generated__/OracleSpecs.ts +++ b/apps/explorer/src/app/routes/oracles/__generated__/OracleSpecs.ts @@ -3,25 +3,13 @@ // @generated // This file was automatically generated and should not be edited. -import { OracleSpecStatus, PropertyKeyType, ConditionOperator } from "@vegaprotocol/types"; +import { DataSourceSpecStatus, ConditionOperator, PropertyKeyType } from "@vegaprotocol/types"; // ==================================================== // GraphQL query operation: OracleSpecs // ==================================================== -export interface OracleSpecs_oracleSpecs_filters_key { - __typename: "PropertyKey"; - /** - * The name of the property. - */ - name: string | null; - /** - * The type of the property. - */ - type: PropertyKeyType; -} - -export interface OracleSpecs_oracleSpecs_filters_conditions { +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionInternal_sourceType_conditions { __typename: "Condition"; /** * The value to compare against. @@ -33,35 +21,101 @@ export interface OracleSpecs_oracleSpecs_filters_conditions { operator: ConditionOperator; } -export interface OracleSpecs_oracleSpecs_filters { +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionInternal_sourceType { + __typename: "DataSourceSpecConfigurationTime"; + conditions: (OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionInternal_sourceType_conditions | null)[]; +} + +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionInternal { + __typename: "DataSourceDefinitionInternal"; + sourceType: OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionInternal_sourceType; +} + +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_ETHAddress { + __typename: "ETHAddress"; + address: string | null; +} + +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_PubKey { + __typename: "PubKey"; + key: string | null; +} + +export type OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer = OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_ETHAddress | OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_PubKey; + +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_signers { + __typename: "Signer"; + signer: OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer; +} + +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_filters_key { + __typename: "PropertyKey"; + /** + * The name of the property. + */ + name: string | null; + /** + * The type of the property. + */ + type: PropertyKeyType; +} + +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_filters_conditions { + __typename: "Condition"; + /** + * The value to compare against. + */ + value: string | null; + /** + * The type of comparison to make on the value. + */ + operator: ConditionOperator; +} + +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_filters { __typename: "Filter"; /** - * The oracle data property key targeted by the filter. + * key is the data source data property key targeted by the filter. */ - key: OracleSpecs_oracleSpecs_filters_key; + key: OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_filters_key; /** * The conditions that should be matched by the data to be * considered of interest. */ - conditions: OracleSpecs_oracleSpecs_filters_conditions[] | null; + conditions: OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_filters_conditions[] | null; } -export interface OracleSpecs_oracleSpecs_data { - __typename: "OracleData"; +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType { + __typename: "DataSourceSpecConfiguration"; /** - * The list of public keys that signed the data + * signers is the list of authorized signatures that signed the data for this + * data source. All the public keys in the data should be contained in this + * list. */ - pubKeys: string[] | null; + signers: OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_signers[] | null; + /** + * filters describes which source data are considered of interest or not for + * the product (or the risk model). + */ + filters: OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType_filters[] | null; } -export interface OracleSpecs_oracleSpecs { - __typename: "OracleSpec"; +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal { + __typename: "DataSourceDefinitionExternal"; + sourceType: OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal_sourceType; +} + +export type OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType = OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionInternal | OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType_DataSourceDefinitionExternal; + +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec_data { + __typename: "DataSourceDefinition"; + sourceType: OracleSpecs_oracleSpecs_dataSourceSpec_spec_data_sourceType; +} + +export interface OracleSpecs_oracleSpecs_dataSourceSpec_spec { + __typename: "DataSourceSpec"; /** - * Status describes the status of the oracle spec - */ - status: OracleSpecStatus; - /** - * ID is a hash generated from the OracleSpec data. + * ID is a hash generated from the DataSourceSpec data. */ id: string; /** @@ -73,20 +127,102 @@ export interface OracleSpecs_oracleSpecs { */ updatedAt: string | null; /** - * The list of authorized public keys that signed the data for this - * oracle. All the public keys in the oracle data should be contained in these - * public keys. + * Status describes the status of the data source spec */ - pubKeys: string[] | null; + status: DataSourceSpecStatus; + data: OracleSpecs_oracleSpecs_dataSourceSpec_spec_data; +} + +export interface OracleSpecs_oracleSpecs_dataSourceSpec { + __typename: "ExternalDataSourceSpec"; + spec: OracleSpecs_oracleSpecs_dataSourceSpec_spec; +} + +export interface OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data_signers_signer_ETHAddress { + __typename: "ETHAddress"; + address: string | null; +} + +export interface OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data_signers_signer_PubKey { + __typename: "PubKey"; + key: string | null; +} + +export type OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data_signers_signer = OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data_signers_signer_ETHAddress | OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data_signers_signer_PubKey; + +export interface OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data_signers { + __typename: "Signer"; + signer: OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data_signers_signer; +} + +export interface OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data_data { + __typename: "Property"; /** - * Filters describes which oracle data are considered of interest or not for - * the product (or the risk model). + * Name of the property */ - filters: OracleSpecs_oracleSpecs_filters[] | null; + name: string; + /** + * Value of the property + */ + value: string; +} + +export interface OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data { + __typename: "Data"; + /** + * signers is the list of public keys/ETH addresses that signed the data + */ + signers: OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data_signers[] | null; + /** + * properties contains all the properties sent by a data source + */ + data: OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data_data[] | null; + /** + * List of all the data specs that matched this source data. + * When the array is empty, it means no data spec matched this source data. + */ + matchedSpecIds: string[] | null; + /** + * RFC3339Nano formatted date and time for when the data was broadcast to the markets + * with a matching data spec. + * It has no value when the source data does not match any data spec. + */ + broadcastAt: string; +} + +export interface OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData { + __typename: "ExternalData"; + data: OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData_data; +} + +export interface OracleSpecs_oracleSpecs_dataConnection_edges_node { + __typename: "OracleData"; + externalData: OracleSpecs_oracleSpecs_dataConnection_edges_node_externalData; +} + +export interface OracleSpecs_oracleSpecs_dataConnection_edges { + __typename: "OracleDataEdge"; + /** + * The oracle data source + */ + node: OracleSpecs_oracleSpecs_dataConnection_edges_node; +} + +export interface OracleSpecs_oracleSpecs_dataConnection { + __typename: "OracleDataConnection"; + /** + * The oracle data spec + */ + edges: (OracleSpecs_oracleSpecs_dataConnection_edges | null)[] | null; +} + +export interface OracleSpecs_oracleSpecs { + __typename: "OracleSpec"; + dataSourceSpec: OracleSpecs_oracleSpecs_dataSourceSpec; /** * Data list all the oracle data broadcast to this spec */ - data: OracleSpecs_oracleSpecs_data[]; + dataConnection: OracleSpecs_oracleSpecs_dataConnection; } export interface OracleSpecs { diff --git a/apps/explorer/src/app/routes/oracles/__generated___/OracleSpecs.ts b/apps/explorer/src/app/routes/oracles/__generated___/OracleSpecs.ts index 4822aa019..e5605b110 100644 --- a/apps/explorer/src/app/routes/oracles/__generated___/OracleSpecs.ts +++ b/apps/explorer/src/app/routes/oracles/__generated___/OracleSpecs.ts @@ -6,7 +6,7 @@ const defaultOptions = {} as const; export type OracleSpecsQueryVariables = Types.Exact<{ [key: string]: never; }>; -export type OracleSpecsQuery = { __typename?: 'Query', oracleSpecsConnection?: { __typename?: 'OracleSpecsConnection', edges?: Array<{ __typename?: 'OracleSpecEdge', node: { __typename?: 'OracleSpec', status: Types.OracleSpecStatus, id: string, createdAt: string, updatedAt?: string | null, pubKeys?: Array | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType }, conditions?: Array<{ __typename?: 'Condition', value?: string | null, operator: Types.ConditionOperator }> | null }> | null, data: Array<{ __typename?: 'OracleData', pubKeys?: Array | null }> } } | null> | null } | null }; +export type OracleSpecsQuery = { __typename?: 'Query', oracleSpecsConnection?: { __typename?: 'OracleSpecsConnection', edges?: Array<{ __typename?: 'OracleSpecEdge', node: { __typename?: 'OracleSpec', dataSourceSpec: { __typename?: 'ExternalDataSourceSpec', spec: { __typename?: 'DataSourceSpec', id: string, createdAt: string, updatedAt?: string | null, status: Types.DataSourceSpecStatus, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType }, conditions?: Array<{ __typename?: 'Condition', value?: string | null, operator: Types.ConditionOperator }> | null }> | null } } | { __typename?: 'DataSourceDefinitionInternal', sourceType: { __typename?: 'DataSourceSpecConfigurationTime', conditions: Array<{ __typename?: 'Condition', value?: string | null, operator: Types.ConditionOperator } | null> } } } } }, dataConnection: { __typename?: 'OracleDataConnection', edges?: Array<{ __typename?: 'OracleDataEdge', node: { __typename?: 'OracleData', externalData: { __typename?: 'ExternalData', data: { __typename?: 'Data', matchedSpecIds?: Array | null, broadcastAt: string, signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, data?: Array<{ __typename?: 'Property', name: string, value: string }> | null } } } } | null> | null } } } | null> | null } | null }; export const OracleSpecsDocument = gql` @@ -14,23 +14,79 @@ export const OracleSpecsDocument = gql` oracleSpecsConnection { edges { node { - status - id - createdAt - updatedAt - pubKeys - filters { - key { - name - type - } - conditions { - value - operator + dataSourceSpec { + spec { + id + createdAt + updatedAt + status + data { + sourceType { + ... on DataSourceDefinitionInternal { + sourceType { + ... on DataSourceSpecConfigurationTime { + conditions { + value + operator + } + } + } + } + ... on DataSourceDefinitionExternal { + sourceType { + ... on DataSourceSpecConfiguration { + signers { + signer { + ... on ETHAddress { + address + } + ... on PubKey { + key + } + } + } + filters { + key { + name + type + } + conditions { + value + operator + } + } + } + } + } + } + } } } - data { - pubKeys + dataConnection { + edges { + node { + externalData { + data { + signers { + signer { + ... on ETHAddress { + address + } + ... on PubKey { + key + } + } + } + data { + name + value + } + matchedSpecIds + broadcastAt + } + } + } + } } } } diff --git a/apps/explorer/src/app/routes/oracles/index.tsx b/apps/explorer/src/app/routes/oracles/index.tsx index d8e165691..d33d84589 100644 --- a/apps/explorer/src/app/routes/oracles/index.tsx +++ b/apps/explorer/src/app/routes/oracles/index.tsx @@ -11,23 +11,79 @@ import { SubHeading } from '../../components/sub-heading'; const ORACLE_SPECS_QUERY = gql` query OracleSpecs { oracleSpecs { - status - id - createdAt - updatedAt - pubKeys - filters { - key { - name - type - } - conditions { - value - operator + dataSourceSpec { + spec { + id + createdAt + updatedAt + status + data { + sourceType { + ... on DataSourceDefinitionInternal { + sourceType { + ... on DataSourceSpecConfigurationTime { + conditions { + value + operator + } + } + } + } + ... on DataSourceDefinitionExternal { + sourceType { + ... on DataSourceSpecConfiguration { + signers { + signer { + ... on ETHAddress { + address + } + ... on PubKey { + key + } + } + } + filters { + key { + name + type + } + conditions { + value + operator + } + } + } + } + } + } + } } } - data { - pubKeys + dataConnection { + edges { + node { + externalData { + data { + signers { + signer { + ... on ETHAddress { + address + } + ... on PubKey { + key + } + } + } + data { + name + value + } + matchedSpecIds + broadcastAt + } + } + } + } } } } @@ -53,12 +109,15 @@ const Oracles = () => {
{t('Oracles')} {data?.oracleSpecs - ? data.oracleSpecs.map((o) => ( - - {o.id} - - - )) + ? data.oracleSpecs.map((o) => { + const id = o.dataSourceSpec.spec.id; + return ( + + {id} + + + ); + }) : null}
); diff --git a/apps/token-e2e/src/fixtures/proposals/new-market.json b/apps/token-e2e/src/fixtures/proposals/new-market.json index 4e6093343..e95574354 100644 --- a/apps/token-e2e/src/fixtures/proposals/new-market.json +++ b/apps/token-e2e/src/fixtures/proposals/new-market.json @@ -9,8 +9,15 @@ "settlementAsset": "8b52d4a3a4b0ffe733cddbc2b67be273816cfeb6ca4c8b339bac03ffba08e4e4", "quoteName": "tEuro", "settlementDataDecimals": 5, - "oracleSpecForSettlementPrice": { - "pubKeys": ["0xfCEAdAFab14d46e20144F48824d0C09B1a03F2BC"], + "dataSourceSpecForSettlementData": { + "signers": [ + { + "signer": { + "__typename": "ETHAddress", + "address": "0xfCEAdAFab14d46e20144F48824d0C09B1a03F2BC" + } + } + ], "filters": [ { "key": { @@ -26,8 +33,15 @@ } ] }, - "oracleSpecForTradingTermination": { - "pubKeys": ["0xfCEAdAFab14d46e20144F48824d0C09B1a03F2BC"], + "dataSourceSpecForTradingTermination": { + "signers": [ + { + "signer": { + "__typename": "ETHAddress", + "address": "0xfCEAdAFab14d46e20144F48824d0C09B1a03F2BC" + } + } + ], "filters": [ { "key": { @@ -43,7 +57,7 @@ } ] }, - "oracleSpecBinding": { + "dataSourceSpecBinding": { "settlementPriceProperty": "prices.BTC.value", "tradingTerminationProperty": "vegaprotocol.builtin.timestamp" } diff --git a/apps/token-e2e/src/fixtures/proposals/update-market.json b/apps/token-e2e/src/fixtures/proposals/update-market.json index a307255cf..6a410fdd2 100644 --- a/apps/token-e2e/src/fixtures/proposals/update-market.json +++ b/apps/token-e2e/src/fixtures/proposals/update-market.json @@ -6,8 +6,15 @@ "future": { "quoteName": "tEuro", "settlementDataDecimals": 5, - "oracleSpecForSettlementPrice": { - "pubKeys": ["0xfCEAdAFab14d46e20144F48824d0C09B1a03F2BC"], + "dataSourceSpecForSettlementData": { + "signers": [ + { + "signer": { + "__typename": "ETHAddress", + "address": "0xfCEAdAFab14d46e20144F48824d0C09B1a03F2BC" + } + } + ], "filters": [ { "key": { @@ -23,8 +30,15 @@ } ] }, - "oracleSpecForTradingTermination": { - "pubKeys": ["0xfCEAdAFab14d46e20144F48824d0C09B1a03F2BC"], + "dataSourceSpecForTradingTermination": { + "signers": [ + { + "signer": { + "__typename": "ETHAddress", + "address": "0xfCEAdAFab14d46e20144F48824d0C09B1a03F2BC" + } + } + ], "filters": [ { "key": { @@ -40,7 +54,7 @@ } ] }, - "oracleSpecBinding": { + "dataSourceSpecBinding": { "settlementPriceProperty": "prices.BTC.value", "tradingTerminationProperty": "vegaprotocol.builtin.timestamp" } diff --git a/apps/token/src/routes/governance/proposal/__generated__/Proposal.ts b/apps/token/src/routes/governance/proposal/__generated__/Proposal.ts index 9925d436d..fa7a654e6 100644 --- a/apps/token/src/routes/governance/proposal/__generated__/Proposal.ts +++ b/apps/token/src/routes/governance/proposal/__generated__/Proposal.ts @@ -3,7 +3,7 @@ // @generated // This file was automatically generated and should not be edited. -import { ProposalState, ProposalRejectionReason, PropertyKeyType, ConditionOperator, VoteValue } from "@vegaprotocol/types"; +import { ProposalState, ProposalRejectionReason, ConditionOperator, PropertyKeyType, VoteValue } from "@vegaprotocol/types"; // ==================================================== // GraphQL query operation: Proposal @@ -61,19 +61,7 @@ export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProdu quantum: string; } -export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForSettlementData_filters_key { - __typename: "PropertyKey"; - /** - * The name of the property. - */ - name: string | null; - /** - * The type of the property. - */ - type: PropertyKeyType; -} - -export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForSettlementData_filters_conditions { +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal_sourceType_conditions { __typename: "Condition"; /** * The type of comparison to make on the value. @@ -85,35 +73,34 @@ export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProdu value: string | null; } -export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForSettlementData_filters { - __typename: "Filter"; - /** - * The oracle data property key targeted by the filter. - */ - key: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForSettlementData_filters_key; - /** - * The conditions that should be matched by the data to be - * considered of interest. - */ - conditions: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForSettlementData_filters_conditions[] | null; +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal_sourceType { + __typename: "DataSourceSpecConfigurationTime"; + conditions: (Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal_sourceType_conditions | null)[]; } -export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForSettlementData { - __typename: "OracleSpecConfiguration"; - /** - * The list of authorised public keys that signed the data for this - * oracle. All the public keys in the oracle data should be contained in these - * public keys. - */ - pubKeys: string[] | null; - /** - * Filters describes which oracle data are considered of interest or not for - * the product (or the risk model). - */ - filters: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForSettlementData_filters[] | null; +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal { + __typename: "DataSourceDefinitionInternal"; + sourceType: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal_sourceType; } -export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForTradingTermination_filters_key { +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_PubKey { + __typename: "PubKey"; + key: string | null; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_ETHAddress { + __typename: "ETHAddress"; + address: string | null; +} + +export type Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer = Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_PubKey | Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_ETHAddress; + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers { + __typename: "Signer"; + signer: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters_key { __typename: "PropertyKey"; /** * The name of the property. @@ -125,7 +112,7 @@ export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProdu type: PropertyKeyType; } -export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForTradingTermination_filters_conditions { +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters_conditions { __typename: "Condition"; /** * The type of comparison to make on the value. @@ -137,36 +124,151 @@ export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProdu value: string | null; } -export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForTradingTermination_filters { +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters { __typename: "Filter"; /** - * The oracle data property key targeted by the filter. + * key is the data source data property key targeted by the filter. */ - key: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForTradingTermination_filters_key; + key: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters_key; /** * The conditions that should be matched by the data to be * considered of interest. */ - conditions: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForTradingTermination_filters_conditions[] | null; + conditions: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters_conditions[] | null; } -export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForTradingTermination { - __typename: "OracleSpecConfiguration"; +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType { + __typename: "DataSourceSpecConfiguration"; /** - * The list of authorised public keys that signed the data for this - * oracle. All the public keys in the oracle data should be contained in these - * public keys. + * signers is the list of authorized signatures that signed the data for this + * data source. All the public keys in the data should be contained in this + * list. */ - pubKeys: string[] | null; + signers: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers[] | null; /** - * Filters describes which oracle data are considered of interest or not for + * filters describes which source data are considered of interest or not for * the product (or the risk model). */ - filters: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForTradingTermination_filters[] | null; + filters: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters[] | null; } -export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecBinding { - __typename: "OracleSpecToFutureBinding"; +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal { + __typename: "DataSourceDefinitionExternal"; + sourceType: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType; +} + +export type Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType = Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal | Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal; + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData { + __typename: "DataSourceDefinition"; + sourceType: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData_sourceType; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal_sourceType_conditions { + __typename: "Condition"; + /** + * The type of comparison to make on the value. + */ + operator: ConditionOperator; + /** + * The value to compare against. + */ + value: string | null; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal_sourceType { + __typename: "DataSourceSpecConfigurationTime"; + conditions: (Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal_sourceType_conditions | null)[]; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal { + __typename: "DataSourceDefinitionInternal"; + sourceType: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal_sourceType; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_PubKey { + __typename: "PubKey"; + key: string | null; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_ETHAddress { + __typename: "ETHAddress"; + address: string | null; +} + +export type Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer = Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_PubKey | Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_ETHAddress; + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers { + __typename: "Signer"; + signer: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters_key { + __typename: "PropertyKey"; + /** + * The name of the property. + */ + name: string | null; + /** + * The type of the property. + */ + type: PropertyKeyType; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters_conditions { + __typename: "Condition"; + /** + * The type of comparison to make on the value. + */ + operator: ConditionOperator; + /** + * The value to compare against. + */ + value: string | null; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters { + __typename: "Filter"; + /** + * key is the data source data property key targeted by the filter. + */ + key: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters_key; + /** + * The conditions that should be matched by the data to be + * considered of interest. + */ + conditions: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters_conditions[] | null; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType { + __typename: "DataSourceSpecConfiguration"; + /** + * signers is the list of authorized signatures that signed the data for this + * data source. All the public keys in the data should be contained in this + * list. + */ + signers: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers[] | null; + /** + * filters describes which source data are considered of interest or not for + * the product (or the risk model). + */ + filters: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters[] | null; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal { + __typename: "DataSourceDefinitionExternal"; + sourceType: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType; +} + +export type Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType = Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal | Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal; + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination { + __typename: "DataSourceDefinition"; + sourceType: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination_sourceType; +} + +export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecBinding { + __typename: "DataSourceSpecToFutureBinding"; settlementDataProperty: string; tradingTerminationProperty: string; } @@ -186,18 +288,18 @@ export interface Proposal_proposal_terms_change_NewMarket_instrument_futureProdu */ settlementDataDecimals: number; /** - * Describes the oracle data that an instrument wants to get from the oracle engine for settlement data. + * Describes the data source data that an instrument wants to get from the data source engine for settlement data. */ - oracleSpecForSettlementData: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForSettlementData; + dataSourceSpecForSettlementData: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForSettlementData; /** - * Describes the oracle data that an instrument wants to get from the oracle engine for trading termination. + * Describes the source data that an instrument wants to get from the data source engine for trading termination. */ - oracleSpecForTradingTermination: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecForTradingTermination; + dataSourceSpecForTradingTermination: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecForTradingTermination; /** - * OracleSpecToFutureBinding tells on which property oracle data should be + * DataSourceSpecToFutureBinding tells on which property source data should be * used as settlement data. */ - oracleSpecBinding: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_oracleSpecBinding; + dataSourceSpecBinding: Proposal_proposal_terms_change_NewMarket_instrument_futureProduct_dataSourceSpecBinding; } export interface Proposal_proposal_terms_change_NewMarket_instrument { @@ -232,19 +334,7 @@ export interface Proposal_proposal_terms_change_NewMarket { instrument: Proposal_proposal_terms_change_NewMarket_instrument; } -export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForSettlementData_filters_key { - __typename: "PropertyKey"; - /** - * The name of the property. - */ - name: string | null; - /** - * The type of the property. - */ - type: PropertyKeyType; -} - -export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForSettlementData_filters_conditions { +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal_sourceType_conditions { __typename: "Condition"; /** * The type of comparison to make on the value. @@ -256,35 +346,34 @@ export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfigu value: string | null; } -export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForSettlementData_filters { - __typename: "Filter"; - /** - * The oracle data property key targeted by the filter. - */ - key: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForSettlementData_filters_key; - /** - * The conditions that should be matched by the data to be - * considered of interest. - */ - conditions: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForSettlementData_filters_conditions[] | null; +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal_sourceType { + __typename: "DataSourceSpecConfigurationTime"; + conditions: (Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal_sourceType_conditions | null)[]; } -export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForSettlementData { - __typename: "OracleSpecConfiguration"; - /** - * The list of authorised public keys that signed the data for this - * oracle. All the public keys in the oracle data should be contained in these - * public keys. - */ - pubKeys: string[] | null; - /** - * Filters describes which oracle data are considered of interest or not for - * the product (or the risk model). - */ - filters: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForSettlementData_filters[] | null; +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal { + __typename: "DataSourceDefinitionInternal"; + sourceType: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal_sourceType; } -export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForTradingTermination_filters_key { +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_PubKey { + __typename: "PubKey"; + key: string | null; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_ETHAddress { + __typename: "ETHAddress"; + address: string | null; +} + +export type Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer = Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_PubKey | Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_ETHAddress; + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers { + __typename: "Signer"; + signer: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters_key { __typename: "PropertyKey"; /** * The name of the property. @@ -296,7 +385,7 @@ export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfigu type: PropertyKeyType; } -export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForTradingTermination_filters_conditions { +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters_conditions { __typename: "Condition"; /** * The type of comparison to make on the value. @@ -308,36 +397,151 @@ export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfigu value: string | null; } -export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForTradingTermination_filters { +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters { __typename: "Filter"; /** - * The oracle data property key targeted by the filter. + * key is the data source data property key targeted by the filter. */ - key: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForTradingTermination_filters_key; + key: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters_key; /** * The conditions that should be matched by the data to be * considered of interest. */ - conditions: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForTradingTermination_filters_conditions[] | null; + conditions: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters_conditions[] | null; } -export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForTradingTermination { - __typename: "OracleSpecConfiguration"; +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType { + __typename: "DataSourceSpecConfiguration"; /** - * The list of authorised public keys that signed the data for this - * oracle. All the public keys in the oracle data should be contained in these - * public keys. + * signers is the list of authorized signatures that signed the data for this + * data source. All the public keys in the data should be contained in this + * list. */ - pubKeys: string[] | null; + signers: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_signers[] | null; /** - * Filters describes which oracle data are considered of interest or not for + * filters describes which source data are considered of interest or not for * the product (or the risk model). */ - filters: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForTradingTermination_filters[] | null; + filters: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType_filters[] | null; } -export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecBinding { - __typename: "OracleSpecToFutureBinding"; +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal { + __typename: "DataSourceDefinitionExternal"; + sourceType: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal_sourceType; +} + +export type Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType = Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionInternal | Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType_DataSourceDefinitionExternal; + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData { + __typename: "DataSourceDefinition"; + sourceType: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData_sourceType; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal_sourceType_conditions { + __typename: "Condition"; + /** + * The type of comparison to make on the value. + */ + operator: ConditionOperator; + /** + * The value to compare against. + */ + value: string | null; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal_sourceType { + __typename: "DataSourceSpecConfigurationTime"; + conditions: (Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal_sourceType_conditions | null)[]; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal { + __typename: "DataSourceDefinitionInternal"; + sourceType: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal_sourceType; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_PubKey { + __typename: "PubKey"; + key: string | null; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_ETHAddress { + __typename: "ETHAddress"; + address: string | null; +} + +export type Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer = Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_PubKey | Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer_ETHAddress; + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers { + __typename: "Signer"; + signer: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers_signer; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters_key { + __typename: "PropertyKey"; + /** + * The name of the property. + */ + name: string | null; + /** + * The type of the property. + */ + type: PropertyKeyType; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters_conditions { + __typename: "Condition"; + /** + * The type of comparison to make on the value. + */ + operator: ConditionOperator; + /** + * The value to compare against. + */ + value: string | null; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters { + __typename: "Filter"; + /** + * key is the data source data property key targeted by the filter. + */ + key: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters_key; + /** + * The conditions that should be matched by the data to be + * considered of interest. + */ + conditions: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters_conditions[] | null; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType { + __typename: "DataSourceSpecConfiguration"; + /** + * signers is the list of authorized signatures that signed the data for this + * data source. All the public keys in the data should be contained in this + * list. + */ + signers: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_signers[] | null; + /** + * filters describes which source data are considered of interest or not for + * the product (or the risk model). + */ + filters: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType_filters[] | null; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal { + __typename: "DataSourceDefinitionExternal"; + sourceType: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal_sourceType; +} + +export type Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType = Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionInternal | Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType_DataSourceDefinitionExternal; + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination { + __typename: "DataSourceDefinition"; + sourceType: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination_sourceType; +} + +export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecBinding { + __typename: "DataSourceSpecToFutureBinding"; settlementDataProperty: string; tradingTerminationProperty: string; } @@ -345,9 +549,9 @@ export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfigu export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product { __typename: "UpdateFutureProduct"; quoteName: string; - oracleSpecForSettlementData: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForSettlementData; - oracleSpecForTradingTermination: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecForTradingTermination; - oracleSpecBinding: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_oracleSpecBinding; + dataSourceSpecForSettlementData: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForSettlementData; + dataSourceSpecForTradingTermination: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecForTradingTermination; + dataSourceSpecBinding: Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument_product_dataSourceSpecBinding; } export interface Proposal_proposal_terms_change_UpdateMarket_updateMarketConfiguration_instrument { diff --git a/apps/token/src/routes/governance/proposal/proposal-container.tsx b/apps/token/src/routes/governance/proposal/proposal-container.tsx index 08ed09321..07055d773 100644 --- a/apps/token/src/routes/governance/proposal/proposal-container.tsx +++ b/apps/token/src/routes/governance/proposal/proposal-container.tsx @@ -46,33 +46,87 @@ export const PROPOSAL_QUERY = gql` } quoteName settlementDataDecimals - oracleSpecForSettlementData { - pubKeys - filters { - key { - name - type + dataSourceSpecForSettlementData { + sourceType { + ... on DataSourceDefinitionInternal { + sourceType { + ... on DataSourceSpecConfigurationTime { + conditions { + operator + value + } + } + } } - conditions { - operator - value + ... on DataSourceDefinitionExternal { + sourceType { + ... on DataSourceSpecConfiguration { + signers { + signer { + ... on PubKey { + key + } + ... on ETHAddress { + address + } + } + } + filters { + key { + name + type + } + conditions { + operator + value + } + } + } + } } } } - oracleSpecForTradingTermination { - pubKeys - filters { - key { - name - type + dataSourceSpecForTradingTermination { + sourceType { + ... on DataSourceDefinitionInternal { + sourceType { + ... on DataSourceSpecConfigurationTime { + conditions { + operator + value + } + } + } } - conditions { - operator - value + ... on DataSourceDefinitionExternal { + sourceType { + ... on DataSourceSpecConfiguration { + signers { + signer { + ... on PubKey { + key + } + ... on ETHAddress { + address + } + } + } + filters { + key { + name + type + } + conditions { + operator + value + } + } + } + } } } } - oracleSpecBinding { + dataSourceSpecBinding { settlementDataProperty tradingTerminationProperty } @@ -86,33 +140,87 @@ export const PROPOSAL_QUERY = gql` code product { quoteName - oracleSpecForSettlementData { - pubKeys - filters { - key { - name - type + dataSourceSpecForSettlementData { + sourceType { + ... on DataSourceDefinitionInternal { + sourceType { + ... on DataSourceSpecConfigurationTime { + conditions { + operator + value + } + } + } } - conditions { - operator - value + ... on DataSourceDefinitionExternal { + sourceType { + ... on DataSourceSpecConfiguration { + signers { + signer { + ... on PubKey { + key + } + ... on ETHAddress { + address + } + } + } + filters { + key { + name + type + } + conditions { + operator + value + } + } + } + } } } } - oracleSpecForTradingTermination { - pubKeys - filters { - key { - name - type + dataSourceSpecForTradingTermination { + sourceType { + ... on DataSourceDefinitionInternal { + sourceType { + ... on DataSourceSpecConfigurationTime { + conditions { + operator + value + } + } + } } - conditions { - operator - value + ... on DataSourceDefinitionExternal { + sourceType { + ... on DataSourceSpecConfiguration { + signers { + signer { + ... on PubKey { + key + } + ... on ETHAddress { + address + } + } + } + filters { + key { + name + type + } + conditions { + operator + value + } + } + } + } } } } - oracleSpecBinding { + dataSourceSpecBinding { settlementDataProperty tradingTerminationProperty } diff --git a/apps/trading-e2e/src/support/mocks/generate-market-info-query.ts b/apps/trading-e2e/src/support/mocks/generate-market-info-query.ts index b93fa78fe..7e51b564f 100644 --- a/apps/trading-e2e/src/support/mocks/generate-market-info-query.ts +++ b/apps/trading-e2e/src/support/mocks/generate-market-info-query.ts @@ -149,16 +149,16 @@ export const generateMarketInfoQuery = ( name: 'tBTC TEST', decimals: 5, }, - oracleSpecForSettlementData: { - __typename: 'OracleSpec', + dataSourceSpecForSettlementData: { + __typename: 'DataSourceSpec', id: 'f028fe5ea7de3890962a05a7163fdde562629af649ed81b8c8902fafb6eef04f', }, - oracleSpecForTradingTermination: { - __typename: 'OracleSpec', + dataSourceSpecForTradingTermination: { + __typename: 'DataSourceSpec', id: 'f028fe5ea7de3890962a05a7163fdde562629af649ed81b8c8902fafb6eef04f', }, - oracleSpecBinding: { - __typename: 'OracleSpecToFutureBinding', + dataSourceSpecBinding: { + __typename: 'DataSourceSpecToFutureBinding', settlementDataProperty: 'prices.BTC.value', tradingTerminationProperty: 'termination.BTC.value', }, diff --git a/apps/trading-e2e/src/support/mocks/generate-market.ts b/apps/trading-e2e/src/support/mocks/generate-market.ts index bf529c6a3..f5670d98a 100644 --- a/apps/trading-e2e/src/support/mocks/generate-market.ts +++ b/apps/trading-e2e/src/support/mocks/generate-market.ts @@ -38,9 +38,9 @@ export const generateMarket = ( __typename: 'InstrumentMetadata', }, product: { - oracleSpecForTradingTermination: { + dataSourceSpecForTradingTermination: { id: 'd253c16c6a17ab88e098479635c611ab503582a1079752d1a49ac15f656f7e7b', - __typename: 'OracleSpec', + __typename: 'DataSourceSpec', }, quoteName: 'BTCUSD Monthly', settlementAsset: { diff --git a/apps/trading/client-pages/market/trade-grid.tsx b/apps/trading/client-pages/market/trade-grid.tsx index 70d129d42..5362e89af 100644 --- a/apps/trading/client-pages/market/trade-grid.tsx +++ b/apps/trading/client-pages/market/trade-grid.tsx @@ -72,7 +72,7 @@ const ExpiryTooltipContent = ({ if (market.marketTimestamps.close === null) { const oracleId = market.tradableInstrument.instrument.product - .oracleSpecForTradingTermination?.id; + .dataSourceSpecForTradingTermination?.id; return (
diff --git a/libs/liquidity/src/lib/__generated__/MarketLiquidity.ts b/libs/liquidity/src/lib/__generated__/MarketLiquidity.ts index 8857d7225..4717d9fae 100644 --- a/libs/liquidity/src/lib/__generated__/MarketLiquidity.ts +++ b/libs/liquidity/src/lib/__generated__/MarketLiquidity.ts @@ -290,4 +290,4 @@ export function useLiquidityProviderFeeShareUpdateSubscription(baseOptions: Apol return Apollo.useSubscription(LiquidityProviderFeeShareUpdateDocument, options); } export type LiquidityProviderFeeShareUpdateSubscriptionHookResult = ReturnType; -export type LiquidityProviderFeeShareUpdateSubscriptionResult = Apollo.SubscriptionResult; +export type LiquidityProviderFeeShareUpdateSubscriptionResult = Apollo.SubscriptionResult; \ No newline at end of file diff --git a/libs/market-info/src/components/market-info/MarketInfo.graphql b/libs/market-info/src/components/market-info/MarketInfo.graphql index 589844229..967afaee7 100644 --- a/libs/market-info/src/components/market-info/MarketInfo.graphql +++ b/libs/market-info/src/components/market-info/MarketInfo.graphql @@ -108,13 +108,13 @@ query MarketInfo($marketId: ID!, $interval: Interval!, $since: String!) { name decimals } - oracleSpecForSettlementData { + dataSourceSpecForSettlementData { id } - oracleSpecForTradingTermination { + dataSourceSpecForTradingTermination { id } - oracleSpecBinding { + dataSourceSpecBinding { settlementDataProperty tradingTerminationProperty } diff --git a/libs/market-info/src/components/market-info/__generated___/MarketInfo.ts b/libs/market-info/src/components/market-info/__generated___/MarketInfo.ts index f7adbe3eb..041fae329 100644 --- a/libs/market-info/src/components/market-info/__generated___/MarketInfo.ts +++ b/libs/market-info/src/components/market-info/__generated___/MarketInfo.ts @@ -10,7 +10,7 @@ export type MarketInfoQueryVariables = Types.Exact<{ }>; -export type MarketInfoQuery = { __typename?: 'Query', market?: { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, proposal?: { __typename?: 'Proposal', id?: string | null, rationale: { __typename?: 'ProposalRationale', title: string, description: string } } | null, marketTimestamps: { __typename?: 'MarketTimestamps', open?: string | null, close?: string | null }, openingAuction: { __typename?: 'AuctionDuration', durationSecs: number, volume: number }, accounts?: Array<{ __typename?: 'AccountBalance', type: Types.AccountType, balance: string, asset: { __typename?: 'Asset', id: string } }> | null, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, priceMonitoringSettings: { __typename?: 'PriceMonitoringSettings', parameters?: { __typename?: 'PriceMonitoringParameters', triggers?: Array<{ __typename?: 'PriceMonitoringTrigger', horizonSecs: number, probability: number, auctionExtensionSecs: number }> | null } | null }, riskFactors?: { __typename?: 'RiskFactor', market: string, short: string, long: string } | null, data?: { __typename?: 'MarketData', markPrice: string, bestBidVolume: string, bestOfferVolume: string, bestStaticBidVolume: string, bestStaticOfferVolume: string, bestBidPrice: string, bestOfferPrice: string, trigger: Types.AuctionTrigger, openInterest: string, suppliedStake?: string | null, targetStake?: string | null, marketValueProxy: string, market: { __typename?: 'Market', id: string }, priceMonitoringBounds?: Array<{ __typename?: 'PriceMonitoringBounds', minValidPrice: string, maxValidPrice: string, referencePrice: string, trigger: { __typename?: 'PriceMonitoringTrigger', horizonSecs: number, probability: number, auctionExtensionSecs: number } }> | null } | null, liquidityMonitoringParameters: { __typename?: 'LiquidityMonitoringParameters', triggeringRatio: number, targetStakeParameters: { __typename?: 'TargetStakeParameters', timeWindow: number, scalingFactor: number } }, candlesConnection?: { __typename?: 'CandleDataConnection', edges?: Array<{ __typename?: 'CandleEdge', node: { __typename?: 'Candle', volume: string } } | null> | null } | null, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array | null }, product: { __typename?: 'Future', quoteName: string, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number }, oracleSpecForSettlementData: { __typename?: 'OracleSpec', id: string }, oracleSpecForTradingTermination: { __typename?: 'OracleSpec', id: string }, oracleSpecBinding: { __typename?: 'OracleSpecToFutureBinding', settlementDataProperty: string, tradingTerminationProperty: string } } }, riskModel: { __typename?: 'LogNormalRiskModel', tau: number, riskAversionParameter: number, params: { __typename?: 'LogNormalModelParams', r: number, sigma: number, mu: number } } | { __typename?: 'SimpleRiskModel', params: { __typename?: 'SimpleRiskModelParams', factorLong: number, factorShort: number } } }, depth: { __typename?: 'MarketDepth', lastTrade?: { __typename?: 'Trade', price: string } | null } } | null }; +export type MarketInfoQuery = { __typename?: 'Query', market?: { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, proposal?: { __typename?: 'Proposal', id?: string | null, rationale: { __typename?: 'ProposalRationale', title: string, description: string } } | null, marketTimestamps: { __typename?: 'MarketTimestamps', open?: string | null, close?: string | null }, openingAuction: { __typename?: 'AuctionDuration', durationSecs: number, volume: number }, accounts?: Array<{ __typename?: 'AccountBalance', type: Types.AccountType, balance: string, asset: { __typename?: 'Asset', id: string } }> | null, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, priceMonitoringSettings: { __typename?: 'PriceMonitoringSettings', parameters?: { __typename?: 'PriceMonitoringParameters', triggers?: Array<{ __typename?: 'PriceMonitoringTrigger', horizonSecs: number, probability: number, auctionExtensionSecs: number }> | null } | null }, riskFactors?: { __typename?: 'RiskFactor', market: string, short: string, long: string } | null, data?: { __typename?: 'MarketData', markPrice: string, bestBidVolume: string, bestOfferVolume: string, bestStaticBidVolume: string, bestStaticOfferVolume: string, bestBidPrice: string, bestOfferPrice: string, trigger: Types.AuctionTrigger, openInterest: string, suppliedStake?: string | null, targetStake?: string | null, marketValueProxy: string, market: { __typename?: 'Market', id: string }, priceMonitoringBounds?: Array<{ __typename?: 'PriceMonitoringBounds', minValidPrice: string, maxValidPrice: string, referencePrice: string, trigger: { __typename?: 'PriceMonitoringTrigger', horizonSecs: number, probability: number, auctionExtensionSecs: number } }> | null } | null, liquidityMonitoringParameters: { __typename?: 'LiquidityMonitoringParameters', triggeringRatio: number, targetStakeParameters: { __typename?: 'TargetStakeParameters', timeWindow: number, scalingFactor: number } }, candlesConnection?: { __typename?: 'CandleDataConnection', edges?: Array<{ __typename?: 'CandleEdge', node: { __typename?: 'Candle', volume: string } } | null> | null } | null, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array | null }, product: { __typename?: 'Future', quoteName: string, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number }, dataSourceSpecForSettlementData: { __typename?: 'DataSourceSpec', id: string }, dataSourceSpecForTradingTermination: { __typename?: 'DataSourceSpec', id: string }, dataSourceSpecBinding: { __typename?: 'DataSourceSpecToFutureBinding', settlementDataProperty: string, tradingTerminationProperty: string } } }, riskModel: { __typename?: 'LogNormalRiskModel', tau: number, riskAversionParameter: number, params: { __typename?: 'LogNormalModelParams', r: number, sigma: number, mu: number } } | { __typename?: 'SimpleRiskModel', params: { __typename?: 'SimpleRiskModelParams', factorLong: number, factorShort: number } } }, depth: { __typename?: 'MarketDepth', lastTrade?: { __typename?: 'Trade', price: string } | null } } | null }; export const MarketInfoDocument = gql` @@ -124,13 +124,13 @@ export const MarketInfoDocument = gql` name decimals } - oracleSpecForSettlementData { + dataSourceSpecForSettlementData { id } - oracleSpecForTradingTermination { + dataSourceSpecForTradingTermination { id } - oracleSpecBinding { + dataSourceSpecBinding { settlementDataProperty tradingTerminationProperty } diff --git a/libs/market-info/src/components/market-info/info-market.tsx b/libs/market-info/src/components/market-info/info-market.tsx index 22ddccddf..3825e6699 100644 --- a/libs/market-info/src/components/market-info/info-market.tsx +++ b/libs/market-info/src/components/market-info/info-market.tsx @@ -332,15 +332,17 @@ export const Info = ({ market, onSelect }: InfoProps) => { title: t('Oracle'), content: ( {t('View settlement data oracle specification')} {t('View termination oracle specification')} diff --git a/libs/market-list/src/lib/__generated___/market.ts b/libs/market-list/src/lib/__generated___/market.ts index 47d363f2c..03546331f 100644 --- a/libs/market-list/src/lib/__generated___/market.ts +++ b/libs/market-list/src/lib/__generated___/market.ts @@ -3,14 +3,14 @@ import { Schema as Types } from '@vegaprotocol/types'; import { gql } from '@apollo/client'; import * as Apollo from '@apollo/client'; const defaultOptions = {} as const; -export type SingleMarketFieldsFragment = { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array | null }, product: { __typename?: 'Future', quoteName: string, oracleSpecForTradingTermination: { __typename?: 'OracleSpec', id: string }, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number } } } }, marketTimestamps: { __typename?: 'MarketTimestamps', open?: string | null, close?: string | null } }; +export type SingleMarketFieldsFragment = { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array | null }, product: { __typename?: 'Future', quoteName: string, dataSourceSpecForTradingTermination: { __typename?: 'DataSourceSpec', id: string }, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number } } } }, marketTimestamps: { __typename?: 'MarketTimestamps', open?: string | null, close?: string | null } }; export type MarketQueryVariables = Types.Exact<{ marketId: Types.Scalars['ID']; }>; -export type MarketQuery = { __typename?: 'Query', market?: { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array | null }, product: { __typename?: 'Future', quoteName: string, oracleSpecForTradingTermination: { __typename?: 'OracleSpec', id: string }, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number } } } }, marketTimestamps: { __typename?: 'MarketTimestamps', open?: string | null, close?: string | null } } | null }; +export type MarketQuery = { __typename?: 'Query', market?: { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array | null }, product: { __typename?: 'Future', quoteName: string, dataSourceSpecForTradingTermination: { __typename?: 'DataSourceSpec', id: string }, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number } } } }, marketTimestamps: { __typename?: 'MarketTimestamps', open?: string | null, close?: string | null } } | null }; export const SingleMarketFieldsFragmentDoc = gql` fragment SingleMarketFields on Market { @@ -36,7 +36,7 @@ export const SingleMarketFieldsFragmentDoc = gql` } product { ... on Future { - oracleSpecForTradingTermination { + dataSourceSpecForTradingTermination { id } settlementAsset { diff --git a/libs/market-list/src/lib/market.graphql b/libs/market-list/src/lib/market.graphql index 49d9ecd6c..316056fe2 100644 --- a/libs/market-list/src/lib/market.graphql +++ b/libs/market-list/src/lib/market.graphql @@ -21,7 +21,7 @@ fragment SingleMarketFields on Market { } product { ... on Future { - oracleSpecForTradingTermination { + dataSourceSpecForTradingTermination { id } settlementAsset { diff --git a/libs/types/src/__generated__/globalTypes.ts b/libs/types/src/__generated__/globalTypes.ts index 8884daf14..510d9baf8 100644 --- a/libs/types/src/__generated__/globalTypes.ts +++ b/libs/types/src/__generated__/globalTypes.ts @@ -55,6 +55,14 @@ export enum ConditionOperator { OPERATOR_LESS_THAN_OR_EQUAL = "OPERATOR_LESS_THAN_OR_EQUAL", } +/** + * Status describe the status of the data spec + */ +export enum DataSourceSpecStatus { + STATUS_ACTIVE = "STATUS_ACTIVE", + STATUS_DEACTIVATED = "STATUS_DEACTIVATED", +} + /** * The current state of a market */ @@ -90,15 +98,7 @@ export enum NodeStatus { } /** - * Status describe the status of the oracle spec - */ -export enum OracleSpecStatus { - STATUS_ACTIVE = "STATUS_ACTIVE", - STATUS_DEACTIVATED = "STATUS_DEACTIVATED", -} - -/** - * Type describes the type of properties that are supported by the oracle + * Type describes the type of properties that are supported by the data source * engine. */ export enum PropertyKeyType { diff --git a/libs/types/src/__generated__/types.ts b/libs/types/src/__generated__/types.ts index 52c30b2c3..d1baa9c4e 100644 --- a/libs/types/src/__generated__/types.ts +++ b/libs/types/src/__generated__/types.ts @@ -430,7 +430,7 @@ export type CandleEdge = { node: Candle; }; -/** Condition describes the condition that must be validated by the oracle engine */ +/** Condition describes the condition that must be validated by the data source engine */ export type Condition = { __typename?: 'Condition'; /** The type of comparison to make on the value. */ @@ -443,14 +443,14 @@ export type Condition = { export enum ConditionOperator { /** Verify if the property values are strictly equal or not. */ OPERATOR_EQUALS = 'OPERATOR_EQUALS', - /** Verify if the oracle data value is greater than the Condition value. */ + /** Verify if the data source data value is greater than the Condition value. */ OPERATOR_GREATER_THAN = 'OPERATOR_GREATER_THAN', /** - * Verify if the oracle data value is greater than or equal to the Condition + * Verify if the data source data value is greater than or equal to the Condition * value. */ OPERATOR_GREATER_THAN_OR_EQUAL = 'OPERATOR_GREATER_THAN_OR_EQUAL', - /** Verify if the oracle data value is less than the Condition value. */ + /** Verify if the data source data value is less than the Condition value. */ OPERATOR_LESS_THAN = 'OPERATOR_LESS_THAN', /** * Verify if the oracle data value is less or equal to than the Condition @@ -466,6 +466,119 @@ export type ContinuousTrading = { tickSize: Scalars['String']; }; +/** A data source contains the data sent by a data source */ +export type Data = { + __typename?: 'Data'; + /** + * RFC3339Nano formatted date and time for when the data was broadcast to the markets + * with a matching data spec. + * It has no value when the source data does not match any data spec. + */ + broadcastAt: Scalars['String']; + /** properties contains all the properties sent by a data source */ + data?: Maybe>; + /** + * List of all the data specs that matched this source data. + * When the array is empty, it means no data spec matched this source data. + */ + matchedSpecIds?: Maybe>; + /** signers is the list of public keys/ETH addresses that signed the data */ + signers?: Maybe>; +}; + +/** + * 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. + */ +export type DataSourceDefinition = { + __typename?: 'DataSourceDefinition'; + sourceType: DataSourceKind; +}; + +/** + * DataSourceDefinitionExternal is the top level object used for all external data sources. + * It contains one of any of the defined `SourceType` variants. + */ +export type DataSourceDefinitionExternal = { + __typename?: 'DataSourceDefinitionExternal'; + sourceType: ExternalDataSourceKind; +}; + +/** + * DataSourceDefinitionInternal is the top level object used for all internal data sources. + * It contains one of any of the defined `SourceType` variants. + */ +export type DataSourceDefinitionInternal = { + __typename?: 'DataSourceDefinitionInternal'; + sourceType: InternalDataSourceKind; +}; + +export type DataSourceKind = DataSourceDefinitionExternal | DataSourceDefinitionInternal; + +/** + * An data source specification describes the data source data that a product (or a risk model) + * wants to get from the oracle engine. + */ +export type DataSourceSpec = { + __typename?: 'DataSourceSpec'; + /** RFC3339Nano creation date time */ + createdAt: Scalars['String']; + data: DataSourceDefinition; + /** ID is a hash generated from the DataSourceSpec data. */ + id: Scalars['ID']; + /** Status describes the status of the data source spec */ + status: DataSourceSpecStatus; + /** RFC3339Nano last updated timestamp */ + updatedAt?: Maybe; +}; + +/** + * A data spec describes the source data that an instrument wants to get from the + * sourcing engine. + */ +export type DataSourceSpecConfiguration = { + __typename?: 'DataSourceSpecConfiguration'; + /** + * filters describes which source data are considered of interest or not for + * the product (or the risk model). + */ + filters?: Maybe>; + /** + * signers is the list of authorized signatures that signed the data for this + * data source. All the public keys in the data should be contained in this + * list. + */ + signers?: Maybe>; +}; + +/** DataSourceSpecConfigurationTime is the internal data source used for emitting timestamps. */ +export type DataSourceSpecConfigurationTime = { + __typename?: 'DataSourceSpecConfigurationTime'; + conditions: Array>; +}; + +/** Status describe the status of the data spec */ +export enum DataSourceSpecStatus { + /** describes an active data spec. */ + STATUS_ACTIVE = 'STATUS_ACTIVE', + /** + * describes a data spec that is not listening to data + * anymore. + */ + STATUS_DEACTIVATED = 'STATUS_DEACTIVATED' +} + +/** + * DataSourceSpecToFutureBinding tells on which property data source data should be + * used as settlement data and trading termination. + */ +export type DataSourceSpecToFutureBinding = { + __typename?: 'DataSourceSpecToFutureBinding'; + settlementDataProperty: Scalars['String']; + tradingTerminationProperty: Scalars['String']; +}; + /** * Range of dates to retrieve information for. * If start and end are provided, data will be returned within the specified range (exclusive). @@ -688,6 +801,11 @@ export type ERC20SetAssetLimitsBundle = { vegaAssetId: Scalars['String']; }; +export type ETHAddress = { + __typename?: 'ETHAddress'; + address?: Maybe; +}; + /** Epoch describes a specific period of time in the Vega network */ export type Epoch = { __typename?: 'Epoch'; @@ -814,7 +932,7 @@ export type Erc20WithdrawalDetails = { receiverAddress: Scalars['String']; }; -/** An Ethereum oracle */ +/** An Ethereum data source */ export type EthereumEvent = { __typename?: 'EthereumEvent'; /** The ID of the ethereum contract to use (string) */ @@ -855,6 +973,22 @@ export type EthereumKeyRotationsConnection = { /** Union type for wrapped events in stream PROPOSAL is mapped to governance data, something to keep in mind */ export type Event = AccountEvent | Asset | AuctionEvent | Deposit | LiquidityProvision | LossSocialization | MarginLevels | Market | MarketData | MarketEvent | MarketTick | NodeSignature | OracleSpec | Order | Party | PositionResolution | Proposal | RiskFactor | SettleDistressed | SettlePosition | TimeUpdate | Trade | TransactionResult | TransferResponses | Vote | Withdrawal; +export type ExternalData = { + __typename?: 'ExternalData'; + data: Data; +}; + +export type ExternalDataSourceKind = DataSourceSpecConfiguration; + +/** + * externalDataSourceSpec is the type that wraps the DataSourceSpec type in order to be further used/extended + * by the OracleSpec + */ +export type ExternalDataSourceSpec = { + __typename?: 'ExternalDataSourceSpec'; + spec: DataSourceSpec; +}; + /** The factors applied to calculate the fees */ export type FeeFactors = { __typename?: 'FeeFactors'; @@ -884,38 +1018,38 @@ export type Filter = { * considered of interest. */ conditions?: Maybe>; - /** The oracle data property key targeted by the filter. */ + /** key is the data source data property key targeted by the filter. */ key: PropertyKey; }; /** A Future product */ export type Future = { __typename?: 'Future'; - /** The binding between the oracle spec and the settlement data */ - oracleSpecBinding: OracleSpecToFutureBinding; - /** The oracle spec describing the oracle data of interest for settlement. */ - oracleSpecForSettlementData: OracleSpec; - /** The oracle spec describing the oracle data of interest for trading termination. */ - oracleSpecForTradingTermination: OracleSpec; + /** The binding between the data source specification and the settlement data */ + dataSourceSpecBinding: DataSourceSpecToFutureBinding; + /** The data source specification that describes the data of interest for settlement. */ + dataSourceSpecForSettlementData: DataSourceSpec; + /** The data source specification describing the data source data of interest for trading termination. */ + dataSourceSpecForTradingTermination: DataSourceSpec; /** String representing the quote (e.g. BTCUSD -> USD is quote) */ quoteName: Scalars['String']; /** The name of the asset (string) */ settlementAsset: Asset; - /** The number of decimal places implied by the settlement data (such as price) emitted by the settlement oracle */ + /** The number of decimal places implied by the settlement data (such as price) emitted by the settlement data source */ settlementDataDecimals: Scalars['Int']; }; export type FutureProduct = { __typename?: 'FutureProduct'; /** - * OracleSpecToFutureBinding tells on which property oracle data should be + * DataSourceSpecToFutureBinding tells on which property source data should be * used as settlement data. */ - oracleSpecBinding: OracleSpecToFutureBinding; - /** Describes the oracle data that an instrument wants to get from the oracle engine for settlement data. */ - oracleSpecForSettlementData: OracleSpecConfiguration; - /** Describes the oracle data that an instrument wants to get from the oracle engine for trading termination. */ - oracleSpecForTradingTermination: OracleSpecConfiguration; + dataSourceSpecBinding: DataSourceSpecToFutureBinding; + /** Describes the data source data that an instrument wants to get from the data source engine for settlement data. */ + dataSourceSpecForSettlementData: DataSourceDefinition; + /** Describes the source data that an instrument wants to get from the data source engine for trading termination. */ + dataSourceSpecForTradingTermination: DataSourceDefinition; /** String representing the quote (e.g. BTCUSD -> USD is quote) */ quoteName: Scalars['String']; /** Product asset */ @@ -974,6 +1108,8 @@ export type InstrumentMetadata = { tags?: Maybe>; }; +export type InternalDataSourceKind = DataSourceSpecConfigurationTime; + /** The interval for trade candles when subscribing via Vega GraphQL, default is I15M */ export enum Interval { /** 1 day interval */ @@ -2028,139 +2164,48 @@ export type Oracle = EthereumEvent; /** An oracle data contains the data sent by an oracle */ export type OracleData = { __typename?: 'OracleData'; - /** - * RFC3339Nano formatted date and time for when the data was broadcast to the markets - * with a matching oracle spec. - * It has no value when the oracle date does not match any oracle spec. - */ - broadcastAt: Scalars['String']; - /** All the properties sent by an oracle */ - data?: Maybe>; - /** - * Lists of all the oracle specs that matched this oracle data. - * When the array is empty, it means no oracle spec matched this oracle data. - */ - matchedSpecIds?: Maybe>; - /** The list of public keys that signed the data */ - pubKeys?: Maybe>; + externalData: ExternalData; }; -/** Connection type for retrieving cursor-based paginated oracle data information */ export type OracleDataConnection = { __typename?: 'OracleDataConnection'; - /** The oracle data */ + /** The oracle data spec */ edges?: Maybe>>; /** The pagination information */ pageInfo: PageInfo; }; -/** Edge type containing the oracle data and cursor information returned by a OracleDataConnection */ export type OracleDataEdge = { __typename?: 'OracleDataEdge'; /** The cursor for the data item */ cursor: Scalars['String']; - /** The oracle data */ + /** The oracle data source */ node: OracleData; }; -/** - * An oracle spec describe the oracle data that a product (or a risk model) - * wants to get from the oracle engine. - */ export type OracleSpec = { __typename?: 'OracleSpec'; - /** RFC3339Nano creation date time */ - createdAt: Scalars['String']; - /** - * Data list all the oracle data broadcast to this spec - * @deprecated Use dataConnection instead - */ - data: Array; /** Data list all the oracle data broadcast to this spec */ dataConnection: OracleDataConnection; - /** - * Filters describes which oracle data are considered of interest or not for - * the product (or the risk model). - */ - filters?: Maybe>; - /** ID is a hash generated from the OracleSpec data. */ - id: Scalars['ID']; - /** - * The list of authorized public keys that signed the data for this - * oracle. All the public keys in the oracle data should be contained in these - * public keys. - */ - pubKeys?: Maybe>; - /** Status describes the status of the oracle spec */ - status: OracleSpecStatus; - /** RFC3339Nano last updated timestamp */ - updatedAt?: Maybe; + dataSourceSpec: ExternalDataSourceSpec; }; -/** - * An oracle spec describe the oracle data that a product (or a risk model) - * wants to get from the oracle engine. - */ export type OracleSpecdataConnectionArgs = { pagination?: InputMaybe; }; -/** - * An oracle spec describe the oracle data that an instrument wants to get from the - * oracle engine. - */ -export type OracleSpecConfiguration = { - __typename?: 'OracleSpecConfiguration'; - /** - * Filters describes which oracle data are considered of interest or not for - * the product (or the risk model). - */ - filters?: Maybe>; - /** - * The list of authorised public keys that signed the data for this - * oracle. All the public keys in the oracle data should be contained in these - * public keys. - */ - pubKeys?: Maybe>; -}; - -/** Edge type containing the oracle spec and cursor information returned by a OracleSpecsConnection */ export type OracleSpecEdge = { __typename?: 'OracleSpecEdge'; - /** The cursor for the spec item */ + /** The cursor for the external data */ cursor: Scalars['String']; - /** The oracle spec */ + /** The external data spec */ node: OracleSpec; }; -/** Status describe the status of the oracle spec */ -export enum OracleSpecStatus { - /** Describes an active oracle spec. */ - STATUS_ACTIVE = 'STATUS_ACTIVE', - /** - * Describes an oracle spec that is not listening to data - * anymore. - */ - STATUS_DEACTIVATED = 'STATUS_DEACTIVATED' -} - -/** - * OracleSpecToFutureBinding tells on which property oracle data should be - * used as settlement data and trading termination. - */ -export type OracleSpecToFutureBinding = { - __typename?: 'OracleSpecToFutureBinding'; - settlementDataProperty: Scalars['String']; - tradingTerminationProperty: Scalars['String']; -}; - -/** Connection type for retrieving cursor-based paginated oracle specs information */ export type OracleSpecsConnection = { __typename?: 'OracleSpecsConnection'; - /** The oracle specs */ edges?: Maybe>>; - /** The pagination information */ pageInfo: PageInfo; }; @@ -2935,7 +2980,7 @@ export type Property = { value: Scalars['String']; }; -/** PropertyKey describes the property key contained in an oracle data. */ +/** PropertyKey describes the property key contained in a source data. */ export type PropertyKey = { __typename?: 'PropertyKey'; /** The name of the property. */ @@ -2945,7 +2990,7 @@ export type PropertyKey = { }; /** - * Type describes the type of properties that are supported by the oracle + * Type describes the type of properties that are supported by the data source * engine. */ export enum PropertyKeyType { @@ -3221,12 +3266,60 @@ export type ProposalsConnection = { pageInfo: PageInfo; }; +/** A proposal to upgrade the vega protocol (i.e. which version of the vega software nodes will run) */ +export type ProtocolUpgradeProposal = { + __typename?: 'ProtocolUpgradeProposal'; + /** Tendermint validators that have agreed to the upgrade */ + approvers: Array; + /** the status of the proposal */ + status: ProtocolUpgradeProposalStatus; + /** At which block the upgrade is proposed */ + upgradeBlockHeight: Scalars['String']; + /** To which vega release tag the upgrade is proposed */ + vegaReleaseTag: Scalars['String']; +}; + +/** Connection type for retrieving cursor-based paginated protocol upgrade proposals */ +export type ProtocolUpgradeProposalConnection = { + __typename?: 'ProtocolUpgradeProposalConnection'; + /** The positions in this connection */ + edges?: Maybe>; + /** The pagination information */ + pageInfo?: Maybe; +}; + +/** Edge type containing the protocol upgrade protocol cursor information */ +export type ProtocolUpgradeProposalEdge = { + __typename?: 'ProtocolUpgradeProposalEdge'; + /** Cursor identifying the protocol upgrade proposal */ + cursor: Scalars['String']; + /** The protocol upgrade proposal */ + node: ProtocolUpgradeProposal; +}; + +/** The set of valid statuses for a protocol upgrade proposal */ +export enum ProtocolUpgradeProposalStatus { + /** Proposal to upgrade protocol version accepted */ + PROTOCOL_UPGRADE_PROPOSAL_STATUS_APPROVED = 'PROTOCOL_UPGRADE_PROPOSAL_STATUS_APPROVED', + /** Proposal to upgrade protocol version is awaiting sufficient validator approval */ + PROTOCOL_UPGRADE_PROPOSAL_STATUS_PENDING = 'PROTOCOL_UPGRADE_PROPOSAL_STATUS_PENDING', + /** Proposal to upgrade protocol version has been rejected */ + PROTOCOL_UPGRADE_PROPOSAL_STATUS_REJECTED = 'PROTOCOL_UPGRADE_PROPOSAL_STATUS_REJECTED', + /** Invalid proposal state */ + PROTOCOL_UPGRADE_PROPOSAL_STATUS_UNSPECIFIED = 'PROTOCOL_UPGRADE_PROPOSAL_STATUS_UNSPECIFIED' +} + /** Indicator showing whether the data-node is ready for the protocol upgrade to begin. */ export type ProtocolUpgradeStatus = { __typename?: 'ProtocolUpgradeStatus'; ready: Scalars['Boolean']; }; +export type PubKey = { + __typename?: 'PubKey'; + key?: Maybe; +}; + /** Queries allow a caller to read data and filter data via GraphQL. */ export type Query = { __typename?: 'Query'; @@ -3391,6 +3484,8 @@ export type Query = { proposals?: Maybe>; /** All governance proposals in the Vega network */ proposalsConnection?: Maybe; + /** List protocol upgrade proposals, optionally filtering on status or approver */ + protocolUpgradeProposals?: Maybe; /** Flag indicating whether the data-node is ready to begin the protocol upgrade */ protocolUpgradeStatus?: Maybe; /** Get statistics about the Vega node */ @@ -3744,6 +3839,14 @@ export type QueryproposalsConnectionArgs = { }; +/** Queries allow a caller to read data and filter data via GraphQL. */ +export type QueryprotocolUpgradeProposalsArgs = { + approvedBy?: InputMaybe; + inState?: InputMaybe; + pagination?: InputMaybe; +}; + + /** Queries allow a caller to read data and filter data via GraphQL. */ export type QuerytransfersArgs = { isFrom?: InputMaybe; @@ -3984,6 +4087,14 @@ export enum Side { SIDE_SELL = 'SIDE_SELL' } +/** Signer is the authorized signature used for the data. */ +export type Signer = { + __typename?: 'Signer'; + signer: SignerKind; +}; + +export type SignerKind = ETHAddress | PubKey; + /** A type of simple/dummy risk model where you can specify the risk factor long and short in params */ export type SimpleRiskModel = { __typename?: 'SimpleRiskModel'; @@ -4590,9 +4701,9 @@ export type UpdateERC20 = { export type UpdateFutureProduct = { __typename?: 'UpdateFutureProduct'; - oracleSpecBinding: OracleSpecToFutureBinding; - oracleSpecForSettlementData: OracleSpecConfiguration; - oracleSpecForTradingTermination: OracleSpecConfiguration; + dataSourceSpecBinding: DataSourceSpecToFutureBinding; + dataSourceSpecForSettlementData: DataSourceDefinition; + dataSourceSpecForTradingTermination: DataSourceDefinition; quoteName: Scalars['String']; }; diff --git a/libs/types/src/global-types-mappings.ts b/libs/types/src/global-types-mappings.ts index e8e77f2af..c938c6554 100644 --- a/libs/types/src/global-types-mappings.ts +++ b/libs/types/src/global-types-mappings.ts @@ -92,7 +92,7 @@ export enum NodeStatusMapping { /** * Status describe the status of the oracle spec */ -export enum OracleSpecStatusMapping { +export enum DataSourceSpecStatusMapping { STATUS_ACTIVE = 'Active', STATUS_DEACTIVATED = 'Deactivated', } diff --git a/libs/wallet/src/connectors/vega-connector.ts b/libs/wallet/src/connectors/vega-connector.ts index a5d1242d3..ed01b6c77 100644 --- a/libs/wallet/src/connectors/vega-connector.ts +++ b/libs/wallet/src/connectors/vega-connector.ts @@ -83,9 +83,9 @@ interface ProposalNewMarketTerms { settlementAsset: string; quoteName: string; settlementPriceDecimals: number; - oracleSpecForSettlementPrice: OracleSpecFor; - oracleSpecForTradingTermination: OracleSpecFor; - oracleSpecBinding: OracleSpecBinding; + dataSourceSpecForSettlementData: DataSourceSpec; + dataSourceSpecForTradingTermination: DataSourceSpec; + dataSourceSpecBinding: DataSourceSpecBinding; }; }; metadata?: string[]; @@ -120,9 +120,9 @@ interface ProposalUpdateMarketTerms { future: { quoteName: string; settlementPriceDecimals: number; - oracleSpecForSettlementPrice: OracleSpecFor; - oracleSpecForTradingTermination: OracleSpecFor; - oracleSpecBinding: OracleSpecBinding; + dataSourceSpecForSettlementPrice: DataSourceSpec; + dataSourceSpecForTradingTermination: DataSourceSpec; + dataSourceSpecBinding: DataSourceSpecBinding; }; }; priceMonitoringParameters?: PriceMonitoringParameters; @@ -183,16 +183,26 @@ interface ProposalUpdateAssetTerms { enactmentTimestamp: number; } -interface OracleSpecBinding { +interface DataSourceSpecBinding { settlementPriceProperty: string; tradingTerminationProperty: string; } -interface OracleSpecFor { - pubKeys: string[]; - filters: Filter[]; +interface DataSourceSpec { + config: { + signers: Signer[]; + filters: Filter[]; + }; } +type Signer = + | { + address: string; + } + | { + key: string; + }; + interface Filter { key: { name: string;